#2585 TclExecuteByteCode execution failure: end stack top < start

final: 8.3.5
closed-invalid
7
2014-12-01
2004-01-27
No

Machine Solaris 5.8 on Sparc
Expectk executing > 20000 lines of code
All compilation using gcc 3.2.2
Frequency of occurance : 2 in 10 application runs in
certain environments
Sequence leading to occurance : unidentified

Configuration options:
tcl: --enable-gcc --enable-threads --enable-symbols --
enable-shared
tk: --enable-gcc --enable-threads --enable-symbols --
enable-shared --with-tcl=../../lib
tix1: --enable-gcc --enable-threads --enable-symbols --
enable-shared --with-tcl=../../lib
tix2: --enable-shared --with-tclconfig=../../../lib --with-
tkconfig=../../../lib --with-tclinclude=../../../include --
with-tkinclude=../../../include --enable-gcc --enable-
symbols --enable-threads
expect: --enable-shared --with-tcl=../lib --with-
tk=../lib --with-tclinclude=../tcl8.3.5/generic --with-
tkinclude=../tk8.3.5/generic --enable-gcc --enable-
symbols

Stack:

(gdb) where
#0 0xfed29794 in __sigprocmask ()
from /usr/lib/libthread.so.1
#1 0xfed1e9a8 in _resetsig () from /usr/lib/libthread.so.1
#2 0xfed1e148 in _sigon () from /usr/lib/libthread.so.1
#3 0xfed21188 in _thrp_kill () from /usr/lib/libthread.so.1
#4 0xfeecb760 in raise () from /usr/lib/libc.so.1
#5 0xfeeb5a84 in abort () from /usr/lib/libc.so.1
#6 0xff117fcc in Tcl_PanicVA (
format=0xff150880 "TclExecuteByteCode execution
failure: end stack top < start stack top",
argList=0xffbe9680) at ../generic/tclPanic.c:93
#7 0xff118014 in Tcl_Panic (
arg1=0xff150880 "TclExecuteByteCode execution
failure: end stack top < start stack top")
at ../generic/tclPanic.c:121
#8 0xff0e07d8 in TclExecuteByteCode (interp=0x249f8,
codePtr=0x64a008)
at ../generic/tclExecute.c:645
#9 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x329be8, flags=0)
at ../generic/tclBasic.c:2733
#10 0xff126d90 in TclObjInterpProc
(clientData=0x45d748, interp=0x249f8,
objc=2, objv=0x25690) at ../generic/tclProc.c:1001
#11 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x64e8f0)
at ../generic/tclExecute.c:877
#12 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x329bb8, flags=0)
at ../generic/tclBasic.c:2733
#13 0xff126d90 in TclObjInterpProc
(clientData=0x45d7e8, interp=0x249f8,
---Type <return> to continue, or q <return> to quit---
objc=1, objv=0xffbea2b8) at ../generic/tclProc.c:1001
#14 0xff119670 in EvalObjv (interp=0x249f8, objc=1,
objv=0xffbea2b8,
command=0x64ec98 "
rssrUtils::SsrattSigChldHandler ", length=33, flags=0)
at ../generic/tclParse.c:932
#15 0xff11a1a4 in Tcl_EvalEx (interp=0x249f8,
script=0x64ec98 " rssrUtils::SsrattSigChldHandler ",
numBytes=33, flags=0)
at ../generic/tclParse.c:1393
#16 0xff11a670 in Tcl_Eval (interp=0x249f8,
string=0x64ec98 " rssrUtils::SsrattSigChldHandler ")
at ../generic/tclParse.c:1549
#17 0xff0b2be8 in Tcl_GlobalEval (interp=0x249f8,
command=0x64ec98 "
rssrUtils::SsrattSigChldHandler ")
at ../generic/tclBasic.c:4149
#18 0xff3633a4 in eval_trap_action (interp=0x249f8,
sig=18, trap=0xff38b4a0,
oldcode=0) at exp_trap.c:465
#19 0xff3624b8 in tophalf (clientData=0x0,
interp=0x249f8, code=0)
at exp_trap.c:133
#20 0xff0acff0 in Tcl_AsyncInvoke (interp=0x249f8,
code=0)
at ../generic/tclAsync.c:256
#21 0xff34f764 in Exp_WaitCmd (clientData=0x0,
interp=0x249f8, argc=0,
argv=0xffbea904) at exp_command.c:2577
#22 0xff0aef94 in TclInvokeStringCommand
(clientData=0x355e0, interp=0x249f8,
objc=3, objv=0x25684) at ../generic/tclBasic.c:1752
---Type <return> to continue, or q <return> to quit---
#23 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x651270)
at ../generic/tclExecute.c:877
#24 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x328988, flags=0)
at ../generic/tclBasic.c:2733
#25 0xff126d90 in TclObjInterpProc
(clientData=0x4094b0, interp=0x249f8,
objc=6, objv=0x2566c) at ../generic/tclProc.c:1001
#26 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x64d0a8)
at ../generic/tclExecute.c:877
#27 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x3288b0, flags=0)
at ../generic/tclBasic.c:2733
#28 0xff126d90 in TclObjInterpProc
(clientData=0x409668, interp=0x249f8,
objc=4, objv=0x2565c) at ../generic/tclProc.c:1001
#29 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x64a9b8)
at ../generic/tclExecute.c:877
#30 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x32a230, flags=0)
at ../generic/tclBasic.c:2733
#31 0xff126d90 in TclObjInterpProc
(clientData=0x460288, interp=0x249f8,
objc=1, objv=0x25658) at ../generic/tclProc.c:1001
#32 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x64b680)
at ../generic/tclExecute.c:877
#33 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x33bae8, flags=0)
at ../generic/tclBasic.c:2733
#34 0xff126d90 in TclObjInterpProc
(clientData=0x317a58, interp=0x249f8,
---Type <return> to continue, or q <return> to quit---
objc=2, objv=0x25650) at ../generic/tclProc.c:1001
#35 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x6486a0)
at ../generic/tclExecute.c:877
#36 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x31a328, flags=0)
at ../generic/tclBasic.c:2733
#37 0xff126d90 in TclObjInterpProc
(clientData=0x317d00, interp=0x249f8,
objc=1, objv=0x2564c) at ../generic/tclProc.c:1001
#38 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x648618)
at ../generic/tclExecute.c:877
#39 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x51b7c0, flags=131072)
at ../generic/tclBasic.c:2733
#40 0xff20d55c in TkInvokeButton (butPtr=0x54b078)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkButton.c:1472
#41 0xff20bee8 in ButtonWidgetObjCmd
(clientData=0x54b078, interp=0x249f8,
objc=2, objv=0x7a808)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkButton.c:848
#42 0xff119670 in EvalObjv (interp=0x249f8, objc=2,
objv=0x7a808,
command=0xff153988 "", length=0, flags=262144)
at ../generic/tclParse.c:932
#43 0xff119868 in Tcl_EvalObjv (interp=0x249f8, objc=2,
objv=0x7a808,
flags=262144) at ../generic/tclParse.c:1019
#44 0xff0aff44 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x6332b8, flags=262144)
---Type <return> to continue, or q <return> to quit---
at ../generic/tclBasic.c:2575
#45 0xff126334 in Tcl_UplevelObjCmd (dummy=0x0,
interp=0x249f8, objc=1,
objv=0x25648) at ../generic/tclProc.c:604
#46 0xff0e12ec in TclExecuteByteCode (interp=0x249f8,
codePtr=0x6459c0)
at ../generic/tclExecute.c:877
#47 0xff0b0430 in Tcl_EvalObjEx (interp=0x249f8,
objPtr=0x7b128, flags=0)
at ../generic/tclBasic.c:2733
#48 0xff126d90 in TclObjInterpProc
(clientData=0x86dd8, interp=0x249f8,
objc=2, objv=0xffbed390) at ../generic/tclProc.c:1001
#49 0xff119670 in EvalObjv (interp=0x249f8, objc=2,
objv=0xffbed390,
command=0xffbed80c "\n
tkButtonUp .toolbar.runTb.start\n", length=37,
flags=0) at ../generic/tclParse.c:932
#50 0xff11a1a4 in Tcl_EvalEx (interp=0x249f8,
script=0xffbed80c "\n
tkButtonUp .toolbar.runTb.start\n", numBytes=37,
flags=0) at ../generic/tclParse.c:1393
#51 0xff11a670 in Tcl_Eval (interp=0x249f8,
string=0xffbed80c "\n
tkButtonUp .toolbar.runTb.start\n")
at ../generic/tclParse.c:1549
#52 0xff0b2be8 in Tcl_GlobalEval (interp=0x249f8,
command=0xffbed80c "\n
tkButtonUp .toolbar.runTb.start\n")
at ../generic/tclBasic.c:4149
#53 0xff1a2f28 in Tk_BindEvent (bindingTable=0x4f7b8,
eventPtr=0x6494e0,
tkwin=0x54af68, numObjects=0,
objectPtr=0xffbed9b0)
---Type <return> to continue, or q <return> to quit---

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkBind.c:1779
#54 0xff1ac11c in TkBindEventProc (winPtr=0x54af68,
eventPtr=0x6494e0)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkCmds.c:244
#55 0xff1b869c in Tk_HandleEvent (eventPtr=0x6494e0)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkEvent.c:864
#56 0xff1b8e1c in WindowEventProc (evPtr=0x6494d8,
flags=-3)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkEvent.c:1199
#57 0xff1151d0 in Tcl_ServiceEvent (flags=-3)
at ../generic/tclNotify.c:607
#58 0xff115634 in Tcl_DoOneEvent (flags=-3)
at ../generic/tclNotify.c:846
#59 0xff1b8f18 in Tk_MainLoop ()

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkEvent.c:1257
#60 0xff1ce974 in Tk_MainEx (argc=2, argv=0xffbedf18,
appInitProc=0x10f88 <Tcl_AppInit>, interp=0x249f8)

at /import/qa/tcltkexpecttcllib/tcltk8.3.5tix8.1.4expect5.
39tcllib1.4/tk8.3.5/generic/tkMain.c:285
#61 0x10f74 in main (argc=3, argv=0xffbedf14) at
exp_main_tk.c:78

Discussion

  • Bhushit Joshipura

    • priority: 5 --> 7
     
  • Bhushit Joshipura

    • summary: TclExecuteByteCode execution failure: end stack top < start --> TclExecuteByteCode execution failure: end stack top < start
     
  • miguel sofer

    miguel sofer - 2004-01-29

    Logged In: YES
    user_id=148712

    Not much to go by hunting this down :( This is quite
    complicated - many extensions, long unidentified script,
    threaded builds, ... I'm not knowlegeable in the way those
    extensions interact with the bytecode engine.

    So, just some comments/questions for now:
    - from the includes in the expect build, I deduce this is
    tcl8.3.5 (otherwise, incorrect files included in expect?)
    - all extensions are built with --enable-threads, except
    for 'expect'. Is this as it should be? Doesn't expect have a
    --enable-threads configuration? Weird ... In any case, the
    '2 in 10' phenomenon may reflect some race condition
    - AFAIK, you can safely use Tk in a threaded build - but
    should carefully avoid calling Tk commands from different
    threads. Or something like that. Are you aware of those issues?
    - What does the 'rssrUtils::SsrattSigChldHandler' command
    do (that's the one that is executing when one of its callees
    messes up the execution stack). Can you get the string
    contents of 'objv[0]->chars' at the calls of
    TclObjInterpProc in stack frames 10 and 13 (those would be
    the names of the procs that are being executed).
    - apparently everything is executing in a single
    interpreter (0x249f8). Is there any way to find out what
    other threads may have been doing at the time (sorry, don't
    know much about debugging multithreaded progs)?

    I do not see how we'll be able to make progress on this
    without a very severe reduction in the complexity: does the
    bug depend on the extensions? What is the script doing? Is
    it possible to repro with a smaller script? Does it depend
    on this being a threaded build?

    Assigning to Jeff for further comments.

     
  • miguel sofer

    miguel sofer - 2004-01-29
    • labels: --> 47. Bytecode Compiler
    • assigned_to: nobody --> hobbs
     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2004-01-29

    Logged In: YES
    user_id=72656

    expect, tix, AND a threaded build? That is not a valid
    build, especially when you throw in the use of signals.
    Expect is not a thread-safe extension, and I suspect there
    is some thread/signal unhappiness occuring.

     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2004-01-29
    • status: open --> closed-invalid
     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks