This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Threading issue in cygwin python 2.5.1-2 ?

Thanks for running this.

René Berber wrote:
Jim Kleckner wrote:
Would someone mind trying the following to see if you get the same behavior?
cd /usr/lib/python2.5/test
Observe that it hangs at "creating task 1".

Yes. After a while of being idle threads go down from 11 to 9, but nothing else happens.

And (using bash):
cd /usr/lib/python2.5/test
python >& testall.out
and observe that test_wait4 fails.

Yes. Testing finished, on the log I see a couple of tracebacks:

test_wait (test.test_wait4.Wait4Test) ... Traceback (most recent call last):
ERROR: test_wait (test.test_wait4.Wait4Test)
test test_wait4 failed -- Traceback (most recent call last):

I reinstalled cygwin to make sure I have 1.5.25-7. I downloaded the source for Python and rebuilt it to see if that would help. Not surprisingly, it didn't.

It appears that Jason Tishler knows about these issues based on
As of Cygwin Python 2.4.3-1, the port has pthread-related issues that
cause some threading features to fail (at least occassionally).  AFAICT,
this is due to a change in the Cygwin DLL some time after 1.5.18.  See
the test section for more details.


Under XP Pro SP2, Cygwin 1.5.24-2, ntsec, and NTFS, Cygwin Python passes
most normal (i.e., non "-u" option) tests.  Unfortunately, some of the
threading-related tests can cause the regression test to abort without
any error messages.  If one excludes these tests, then the regression
test will run to completion.  Additionally, if these tests are run
individually, then they will pass.

What is the best way to proceed with this?

It appears to have been a change since 1.5.18 if Jason's guess
is correct.

I can build a debug version of Python if that is useful.
I can build a debug version of cygwin if that is useful although
previous list comments suggest that it requires some deep
knowledge to do/use properly.

Brian mentioned in cygwin-patches list single-stepping python
using gdb to locate the previous pthread bug arising from
inconsistent headers.  How difficult is it do set that up?
What are the prerequisites?

As an off-topic side note, it sure would be nice to be
able to use valgrind just once on cygwin!

Thanks - Jim

-- Unsubscribe info: Problem reports: Documentation: FAQ:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]