[Python-Dev] bug in python arm-linux?: start_new_thread fails after popen (original) (raw)
Michael Lauer mickey at tm.informatik.uni-frankfurt.de
Wed Dec 17 09:01:00 EST 2003
- Previous message: Access Control (was Re: [Python-Dev] rexec.py unuseable)
- Next message: [Python-Dev] bug in python arm-linux?: start_new_thread fails after popen
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi, I have a python program which works fine on x86 but doesn't work on any of my arm-linux devices (Zaurus, Ipaq, SIMpad) - all of them are running Python 2.3.2 on top of glibc 2.3.2+linuxthreads on top of kernel 2.4.18-rmk6-pxa3 respectively kernel 2.4.19-rmk7.
After a long week of debugging I now can reproduce the behaviour with the following minimal case:
import thread from time import sleep import sys import os
def createPipe(): print os.popen( "ls -l" ).read()
def threadMain( name ): while True: sys.stderr.write( name+": i'm still running" ) sys.stderr.flush() sleep( 1 )
if name == 'main':
createPipe()
print "BEFORE start_new_thread"
thread.start_new_thread( threadMain, ( "1", ) )
print "AFTER start_new_thread"
createPipe()
print "BEFORE start_new_thread"
thread.start_new_thread( threadMain, ( "2", ) )
print "AFTER start_new_thread"
sleep( 5 )
This program - as is - just hangs in the first start_new_thread() and never comes back. If you outcomment the first call to createPipe() out, then it works fine.
In the first - hanging - case, an strace shows:
write(1, "BEFORE start_new_thread\n", 24BEFORE start_new_thread
) = 24
rt_sigprocmask(SIG_BLOCK, [33], [RTMIN], 8) = 0
pipe([3, 4]) = 0
clone(child_stack=0x14e080,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 949
write(4, "\314V\1@\5\0\0\0\0\0\0\0\0\0\0\0\34\213\37@\10c\1@\0\0"...,
148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP 33], 8) = 0
write(4, "\0\21\3@\0\0\0\0\0\0\0\0hO\n\0\2503\23\0\377\376\373\377"...,
148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP 33], 8) = 0
rt_sigsuspend([KILL STOP RTMIN 33]
The program must be kill -9'ed at this point.
Can anyone explain this behaviour to me - did I find a bug?
Sincerely,
-- :M:
Dipl.-Inf. Michael 'Mickey' Lauer mickey at tm.informatik.uni-frankfurt.de Raum 10b - ++49 69 798 28358 Fachbereich Informatik und Biologie
- Previous message: Access Control (was Re: [Python-Dev] rexec.py unuseable)
- Next message: [Python-Dev] bug in python arm-linux?: start_new_thread fails after popen
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]