[ python-Bugs-780576 ] test_ioctl fails
SourceForge.net
noreply at sourceforge.net
Fri Sep 23 11:01:34 CEST 2005
Bugs item #780576, was opened at 2003-07-31 01:04
Message generated for change (Comment added) made by birkenfeld
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=780576&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Build
Group: Python 2.3
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Jean M. Brouwers (jbrouwers)
Assigned to: Anthony Baxter (anthonybaxter)
Summary: test_ioctl fails
Initial Comment:
Test case test_ioctl fails when building Python 2.3 on
RedHat 8.0, but just one one and not another RedHat 8.0
machine. The initial suspicion was that this failure
may be related to this bug report:
http://sourceforge.net/tracker/?group_id=5470&atid=105470&func=detail&aid=777867
but that was reported on Debian unstable. It could
still be a glibc bug that Python is tickling but the
glibc libraries are the same one both machines (at
least there is no difference in the version numbers
from rpm).
rpm -qa | grep -i glibc
glibc-devel-2.3.2-4.80.6
glibc-kernheaders-2.4-7.20
glibc-common-2.3.2-4.80.6
glibc-2.3.2-4.80.6
----------------------------------------------------------------------
>Comment By: Reinhold Birkenfeld (birkenfeld)
Date: 2005-09-23 11:01
Message:
Logged In: YES
user_id=1188172
Verified. Closing accordingly.
----------------------------------------------------------------------
Comment By: Monte Davidoff (mdavidoff)
Date: 2005-09-23 09:35
Message:
Logged In: YES
user_id=1200009
The fix for this bug was included in Patch 1284289:
Lib/test/test_ioctl.py -- Fixed bug in import statement for
test.test_support. Fixed bug where the test would fail if
the test suite was being run in the backgroud. In this case,
the TIOCGPGRP ioctl on /dev/tty returns the session ID, not
the process group ID.
See also bug 777867.
----------------------------------------------------------------------
Comment By: Hakanson (hakansonsf)
Date: 2004-09-01 00:30
Message:
Logged In: YES
user_id=1103758
Sorry, that was not helpful: I meant test TIOCGPGRP
on a pseudo-tty that the testing process creates.
Another alternative would be to test some STREAMS
ioctl against a stream/pipe that the process creates.
But yes, this quickly gets complicated.
----------------------------------------------------------------------
Comment By: Hakanson (hakansonsf)
Date: 2004-08-16 20:08
Message:
Logged In: YES
user_id=1103758
Maybe test TIOCGPGRP on a file/directory that the test
creates anew, instead of /dev/tty. That should definitely
match the process group of the current process.
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2004-08-14 15:53
Message:
Logged In: YES
user_id=6656
Oh, crud.
However, if we don't test TIOCGPGRP, what *can* we test?
Perhaps we should just test that the call doesn't blow up.
----------------------------------------------------------------------
Comment By: Hakanson (hakansonsf)
Date: 2004-08-14 00:57
Message:
Logged In: YES
user_id=1103758
Folks,
I recently completed a build of python-2.3.2 (I realize
2.3.4 is out, but this info should still be relevant) on
SPARC/Solaris-9, and as in this bug, the test_ioctl is
failing. However, I believe I have found the cause, after
running the tests with "-v" added to TESTOPTS in the
Makefile. Since I have found no other mention of this
particular cause for the failure, perhaps others will find
this information helpful.
The test is failing because the process group returned from
the OS (the getpgrp() system call) does not match the
process group associated with /dev/tty (as returned by the
TIOCGPGRP ioctl() call). Now it turns out that this is not
really an error, because some command shells (ksh, csh,
perhaps bash), will assign each new command to a new process
group, in order to do job-control (^Z interruption, moving
to/from background, etc.).
So, at least on this platform, using ksh, the test_ioctl
will _always_ fail, since the "make" command gets a process
group different from that of the parent shell, and different
from /dev/tty's process group (which matches the parent shell).
Therefor it would probably be better to test some other
ioctl() call than the TIOCGPGRP call, or otherwise rework
the test so it doesn't fail under what can be normal
circumstances on some platforms.
Regards,
Marion
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2003-08-05 12:48
Message:
Logged In: YES
user_id=6656
You're supposed to run
./python ./Lib/test/regrtest.py test_ioctl
or maybe
./python ./Lib/test/regrtest.py -v test_ioctl
----------------------------------------------------------------------
Comment By: Foo Man Bar (drauh)
Date: 2003-08-05 09:39
Message:
Logged In: YES
user_id=91293
Blah. I was too hasty: while "./python
./Lib/test/test_ioctl.py" passed after making the
modification I mentioned, a re-run of "make test" at the top
level says that test_ioctl failed. Before I did the "make
test", I did make sure to delete test_ioctl.pyc.
----------------------------------------------------------------------
Comment By: Foo Man Bar (drauh)
Date: 2003-08-05 09:18
Message:
Logged In: YES
user_id=91293
I compiled with gcc-3.2.3 (compiled from source) on a RH9
system. The error message from doing "./python
./Lib/test/test_ioctl.py" (after appropriately setting
LD_LIBRARY_PATH) was:
Traceback (most recent call last):
File "Lib/test/test_ioctl.py", line 2, in ?
from test_support import TestSkipped, run_unittest
File "/opt/src/Python-2.3/Lib/test/test_support.py",
line 4, in ?
raise ImportError, 'test_support must be imported from
the test package'
ImportError: test_support must be imported from the test
package
In the file Lib/test/test_ioctl.py, if I replace:
from test_support import TestSkipped, run_unittest
with
from test.test_support import TestSkipped, run_unittest
the test passes as expected. Gotta love error messages. ;)
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2003-08-01 18:21
Message:
Logged In: YES
user_id=6656
IIRC, Anthony wrote the test.
Anthony, any other ideas?
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2003-08-01 18:20
Message:
Logged In: YES
user_id=6656
Grr.
I wonder if we should find some other ioctl to test.
----------------------------------------------------------------------
Comment By: Jean M. Brouwers (jbrouwers)
Date: 2003-08-01 17:42
Message:
Logged In: YES
user_id=832557
I ran both tests you requested, twice and all four passed.
I also ran 'make tests' two more times and test_ioctl now
passes.
This is bizarre, but test_ioctl has failed only after a
fresh build, i.e. when running 'make clean; make install;
make test'.
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2003-08-01 13:21
Message:
Logged In: YES
user_id=6656
Oh good <wink>
Can you try:
./python ./Lib/test/regrtest.py
(this should run all the tests)
and
./python ./Lib/test/regrtest.py test_fork1 test_ioctl
(I *suspect* that it's test_fork1 that messes up the
environment such that the ioctl test fails, but it's just a
guess).
----------------------------------------------------------------------
Comment By: Jean M. Brouwers (jbrouwers)
Date: 2003-07-31 20:58
Message:
Logged In: YES
user_id=832557
One more piece of data. If I run the test as
python regrtest.py -s test_ioctl.py
it passsed every single time on the same machine where the
failures occurred.
----------------------------------------------------------------------
Comment By: Jean M. Brouwers (jbrouwers)
Date: 2003-07-31 18:54
Message:
Logged In: YES
user_id=832557
Here is more background info.
I built Python 2.3 (final) several times and ran "make test"
as part of that. The ioctl_test failed two out of three
times on one machine and did not fail on another machine.
Different machines but the same RH 8 versions.
Also, I built several Python beta releases (2.3b1, 2.3b2 and
2.3c2 if I recall correctly) all just once and the test
failed there too.
I haven't checked further details and don't know whether
this is classified as Heisenbug-like behavior or not. But
if the test fails, the error message is "test_ioctl failed
-- errors occurred in test.test_ioctl.IoctlTests".
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2003-07-31 12:27
Message:
Logged In: YES
user_id=6656
Does your failure exhibit the same heisenbug-like qualities
as #777867? (e.g. can you reproduce it running tests via
regrtest? does it fail in isolation?)
Does it fail in the same way, i.e. returning different
numbers from the ioctl() call than the getpgrp() call?
It doesn't fail on my sorta RH 7.2 box, but I'm thinking of
upgrading soon anyway...
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=780576&group_id=5470
More information about the Python-bugs-list
mailing list