[Python-Dev] Re: Revised 1.6 jobs list

Neil Schemenauer nascheme@enme.ucalgary.ca
Mon, 5 Jun 2000 15:03:13 -0600


[David Ascher]
>> test_fork1 fails on Linux with threads on SMP machines. (It's
>> irrelevant without threads.) This is a hard failure -- the
>> process can either SEGV or hang forever. Is this a showstopper?
>> SMP boxes are becoming increasingly common both as servers and
>> workstations.
>
> Why does the test fail? I'd hate to see the thousands (nay,
> hundreds of thousands) of users complain that foo isn't working
> just because the test for a rarely used feature on a rare
> platform is broken.

Threads and fork() don't seem to mix on Linux.  Even on a
UP machine things seem strange:

    http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=613477888&fmt=text

I tried to reproduce the problem with a C program but could not.
When things hang the forking thread is stuck in wait4() while the
child process is suspended:

    #0  0x4027d9ba in sigsuspend () from /lib/libc.so.6
    #1  0x40232c77 in __pthread_wait_for_restart_signal ()
       from /lib/libpthread.so.0
    #2  0x4023406e in __pthread_lock () from /lib/libpthread.so.0
    #3  0x4023186a in pthread_mutex_lock () from /lib/libpthread.so.0
    #4  0x806fbaa in PyThread_release_lock (lock=0x81ebb68) at
    thread_pthread.h:339
    #5  0x805617b in eval_code2 (co=0x81eca68, globals=0x81c4f64,
    locals=0x0, 
        args=0x81be278, argcount=0, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, 
        owner=0x0) at ceval.c:630
    #6  0x805ac19 in call_function (func=0x81ebb2c, arg=0x81be26c,
    kw=0x0)
        at ceval.c:2552
    #7  0x805a5a4 in PyEval_CallObjectWithKeywords (func=0x81ebb2c,
    arg=0x81be26c, 
        kw=0x0) at ceval.c:2390
    #8  0x80b2c7b in t_bootstrap (boot_raw=0x81ebb50) at
    ./threadmodule.c:224
    #9  0x40230c8f in pthread_start_thread () from
    /lib/libpthread.so.0

I don't know if this is a LinuxThread problem or a Python
problem.

    Neil

-- 
The internet: Learn what you know.  Share what you don't.