From: SourceForge.net <no...@so...> - 2003-05-29 11:35:42
|
Bugs item #705917, was opened at 2003-03-18 17:46 Message generated for change (Comment added) made by ms1234 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=705917&group_id=10894 Category: 45. Bytecode Compiler Group: 8.5a0 Status: Open Resolution: None Priority: 5 Submitted By: Michael Schlenker (mic42) Assigned to: miguel sofer (msofer) Summary: segfault in stack.test with threaded build on SuSE 8.0 Initial Comment: The threaded build from todays HEAD (18. March 2003) crashes in stack.test on SuSE 8.0 (x86). It doesn't crash on Redhat 7.3, according to migul sofer. No crash on windows 2000 either. This happens for both static and shared builds of tcl. The crash happens in the first test stack 1.1 in stack.test, the stack trace isn't nice (over 800 entries long, i didn't scroll to the end). ---------------------------------------------------------------------- Comment By: Marc Spitzer (ms1234) Date: 2003-05-29 07:35 Message: Logged In: YES user_id=779257 happens in 8.4.3 with freebsd 4.8: > # make test TESTFLAGS="-file stack.test" LD_LIBRARY_PATH=`pwd`:; > export LD_LIBRARY_PATH; TCL_LIBRARY="/root/build/tcl8.4.3/library"; > export TCL_LIBRARY; ./tcltest ./../tests/all.tcl -file stack.test > Tests running in interp: /root/build/tcl8.4.3/unix/tcltest > Tests located in: /root/build/tcl8.4.3/tests > Tests running in: /root/build/tcl8.4.3/unix > Temporary files stored in /root/build/tcl8.4.3/unix > Test files run in separate interpreters > Running tests that match: * > Skipping test files that match: l.*.test > Only running test files that match: stack.test > Tests began at Wed May 28 21:38:55 EDT 2003 > stack.test > Test file error: child killed: bus error > Tests ended at Wed May 28 21:38:55 EDT 2003 > all.tcl: Total 0 Passed 0 Skipped 0 Failed 0 > Sourced 1 Test Files. > Test files exiting with errors: stack.test ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-04-02 16:05 Message: Logged In: NO > a) what happens in a non-threaded build? the non-threaded build appears to work. > (b) what is the output of 'ulimit -s' 65536 JJM ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2003-03-31 04:37 Message: Logged In: YES user_id=79902 Hmm. Do tests run in a separate thread in the threaded build? If so, we'll be hitting a separate limit (the default(?) stack size for a thread, as opposed to the main system stack size which is controlled by 'ulimit -s' IIRC.) ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-03-29 14:14 Message: Logged In: NO Michael tested: tcl 8.4.1 crashes on the same SuSE Machine at 966 with the recurse script (threaded). ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-03-29 14:04 Message: Logged In: NO Michael Schlenker: Miguel i tested your [recurse] script, it segfaulted at 966. "ulimit -s" returns "unlimited" The crash does not happen with the nonthreaded build. I could not reproduce the crash under Win2k last time i tested, will check again tomorrow. Testing with older versions. ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2003-03-29 11:16 Message: Logged In: YES user_id=148712 From the tcl'ers chat: JJM's build was threaded, patthoyts reports instead OpenBSD Tcl 8.4: at 1000: to many nested calls to Tcl_Eval. OpenBSD tcl 8.4.2: at 1000: too many nested evaluations (infinite loop?) Neither of mine are threaded. Ooooo Win2K Tcl 8.4.2 at 863: got the windows unknown software exception dialog Questions: (a) for Joe and Michael: what happens in a non-threaded build? (b) for Joe and Michael: what is the output of 'ulimit -s' (b) for Pat: Was that a threaded build on Win2K? (c) for all: does the failure happen also on older releases? Comments: Tcl checks for stack overflow in an indirect manner: it counts the nesting depth, and errors-out when it hits its maximum (1000 per default, configurable). What we are seeing is that the C-stack is exhausted before we hit the 1000 limit, i.e., that we may have to use a smaller default max nesting depth. I'm trying to find out if the stack usage of Tcl grew lately ... On Win2K the matter is probably worse: there is a further check by the OS to prevent stack overflow, it is apparently not behaving correctly (per Pat's report). ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-03-28 18:33 Message: Logged In: NO (let's try this again, the SF interface is not working right) bug confirmed with Tcl 8.4.2 on FreeBSD 4.8-RC. i get the error "Bus error (core dumped)" from "proc recurse i {puts $i; recurse [incr i]}; recurse 1" at 518 deep. JJM ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-03-28 18:21 Message: Logged In: NO bug confirmed with Tcl 8.4.2 on FreeBSD 4.8-RC. i get the error "Bus error (core dumped)" from "proc recurse i {puts $i; recurse [incr i]}; recurse 1" at only 518 times. JJM ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2003-03-28 17:45 Message: Logged In: YES user_id=148712 The stack.test failure mode is supposed to be a crash, and the stack trace will indeed be very deep: we are testing the max nest size there. Michael: what stack size do you see with 'ulimit'? Could you run the following script (WARNING: it will run for a while, fill your terminal with numbers and finally crash) and report the last number it outputs? proc recurse i {puts $i; recurse [incr i]} recurse 1 Can anybody else confirm the bug on SuSE 8.0? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=705917&group_id=10894 |