[Python-Dev] stack check on Unix: any suggestions?

Charles G Waldman cgw@fnal.gov
Sun, 3 Sep 2000 00:34:24 -0500 (CDT)


Skip Montanaro writes:

 > When I configure --without-threads, the script runs much longer, making it
 > past 18068.  It conks out in the same spot, however, trying to print 18069.
 > The fact that it occurs in the same place with and without threads (the
 > addresses of the two different _IO_vfprintf functions are different, which
 > implies different stdio libraries are active in the threading and
 > non-threading versions as Thomas said), suggests to me that the problem may
 > simply be that in the threading case each thread (even the main thread) is
 > limited to a much smaller stack.  Perhaps I'm seeing what I'm supposed to
 > see.  If the two versions were to crap out for different reasons, I doubt
 > I'd see them failing in the same place.

Yes, libpthread defines it's own version of _IO_vprintf. 

Try this experiment:  do a "ulimit -a" to see what the stack size
limit is; start your Python process; find it's PID, and before you
start your test, go into another window and run the command
watch -n 0 "grep Stk /proc/<pythonpid>/status"

This will show exactly how much stack Python is using.  Then start the
runaway-recursion test.  If it craps out when the stack usage hits the
rlimit, you are seeing what you are supposed to see.  If it craps out
anytime sooner, there is a real bug of some sort, as I'm 99% sure
there is.