Threading issue in cygwin python 2.5.1-2 ?

Jim Kleckner jek-cygwin2@kleckner.net
Wed Feb 13 18:29:00 GMT 2008


Thanks for running this.

René Berber wrote:
> Jim Kleckner wrote:
> [snip]
>> Would someone mind trying the following to see if you get the same 
>> behavior?
>> cd /usr/lib/python2.5/test
>> python testall.py
>> 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.py >& 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
the CYGWIN-PATCHES/README file:
> 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.
>
[snip]

> 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:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list