#4437 panic in filename-11.20 (threaded debug build)

obsolete: 8.5.7
closed
7
2009-12-26
2009-10-18
Joe Mistachkin
No

I'm seeing the panic "Trying to decr ref count of Tcl_Obj allocated in another thread" when I run test "filename.test" in the threaded full-debugging build (-DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1).

> msvcr90d.dll!_NMSG_WRITE(int rterrnum=10) Line 198 C
msvcr90d.dll!abort() Line 59 + 0x7 bytes C
tcl85tg.dll!Tcl_PanicVA(const char * format=0x10156dd0, char * argList=0x002664f0) Line 103 + 0x8 bytes C
tcl85tg.dll!Tcl_Panic(const char * format=0x10156dd0, ...) Line 132 + 0xd bytes C
tcl85tg.dll!Tcl_DbIncrRefCount(Tcl_Obj * objPtr=0x0109dd60, const char * file=0x101580d0, int line=2691) Line 3520 + 0xf bytes C
tcl85tg.dll!DupFsPathInternalRep(Tcl_Obj * srcPtr=0x0109bee8, Tcl_Obj * copyPtr=0x0109c030) Line 2691 + 0x16 bytes C
tcl85tg.dll!Tcl_DuplicateObj(Tcl_Obj * objPtr=0x0109bee8) Line 1433 + 0x12 bytes C
tcl85tg.dll!AppendPath(Tcl_Obj * head=0x0109bee8, Tcl_Obj * tail=0x0109c518) Line 1387 + 0x9 bytes C
tcl85tg.dll!UpdateStringOfFsPath(Tcl_Obj * pathPtr=0x0109c3c0) Line 2756 + 0x13 bytes C
tcl85tg.dll!Tcl_GetString(Tcl_Obj * objPtr=0x0109c3c0) Line 1473 + 0x11 bytes C
tcl85tg.dll!Tcl_LsortObjCmd(void * clientData=0x00000000, Tcl_Interp * interp=0x00a2be58, int objc=2, Tcl_Obj * const * objv=0x00a30830) Line 3705 + 0x20 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=2, Tcl_Obj * const * objv=0x00a30830, const char * command=0xffffffff, int length=-1, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclExecuteByteCode(Tcl_Interp * interp=0x00a2be58, ByteCode * codePtr=0x0109b448) Line 2328 + 0x1d bytes C
tcl85tg.dll!TclCompEvalObj(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x01099a70, const CmdFrame * invoker=0x00a307c8, int word=1) Line 1450 + 0xd bytes C
tcl85tg.dll!TclEvalObjEx(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x01099a70, int flags=0, const CmdFrame * invoker=0x00a307c8, int word=1) Line 5264 + 0x15 bytes C
tcl85tg.dll!Tcl_CatchObjCmd(void * dummy=0x00000000, Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x00a307f4) Line 253 + 0x1e bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x00a307f4, const char * command=0xffffffff, int length=-1, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclExecuteByteCode(Tcl_Interp * interp=0x00a2be58, ByteCode * codePtr=0x01093e88) Line 2328 + 0x1d bytes C
tcl85tg.dll!TclCompEvalObj(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x00ffae00, const CmdFrame * invoker=0x00a30220, int word=4) Line 1450 + 0xd bytes C
tcl85tg.dll!TclEvalObjEx(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x00ffae00, int flags=0, const CmdFrame * invoker=0x00a30220, int word=4) Line 5264 + 0x15 bytes C
tcl85tg.dll!Tcl_UplevelObjCmd(void * dummy=0x00000000, Tcl_Interp * interp=0x00a2be58, int objc=1, Tcl_Obj * const * objv=0x00a307bc) Line 948 + 0x19 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x00a307b4, const char * command=0xffffffff, int length=-1, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclExecuteByteCode(Tcl_Interp * interp=0x00a2be58, ByteCode * codePtr=0x01089750) Line 2328 + 0x1d bytes C
tcl85tg.dll!TclObjInterpProcCore(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * procNameObj=0x0108d4c8, int skip=1, void (Tcl_Interp *, Tcl_Obj *)* errorProc=0x100e3cc0) Line 1758 + 0xd bytes C
tcl85tg.dll!TclObjInterpProc(void * clientData=0x00fb4158, Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x01099e20) Line 1652 + 0x16 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x01099e20, const char * command=0x00000000, int length=0, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!Tcl_EvalObjv(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x01099e20, int flags=0) Line 3885 + 0x19 bytes C
tcl85tg.dll!TclEvalObjEx(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x0109d0d8, int flags=0, const CmdFrame * invoker=0x00000000, int word=0) Line 5116 + 0x15 bytes C
tcl85tg.dll!Tcl_UplevelObjCmd(void * dummy=0x00000000, Tcl_Interp * interp=0x00a2be58, int objc=1, Tcl_Obj * const * objv=0x00a306f0) Line 948 + 0x19 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x00a306e8, const char * command=0xffffffff, int length=-1, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclExecuteByteCode(Tcl_Interp * interp=0x00a2be58, ByteCode * codePtr=0x01087ef8) Line 2328 + 0x1d bytes C
tcl85tg.dll!TclObjInterpProcCore(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * procNameObj=0x01099e88, int skip=1, void (Tcl_Interp *, Tcl_Obj *)* errorProc=0x100e3cc0) Line 1758 + 0xd bytes C
tcl85tg.dll!TclObjInterpProc(void * clientData=0x00fd9ea8, Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x010971a8) Line 1652 + 0x16 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x010971a8, const char * command=0x00000000, int length=0, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!Tcl_EvalObjv(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x010971a8, int flags=0) Line 3885 + 0x19 bytes C
tcl85tg.dll!TclEvalObjEx(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * objPtr=0x010970b8, int flags=0, const CmdFrame * invoker=0x00000000, int word=0) Line 5116 + 0x15 bytes C
tcl85tg.dll!Tcl_UplevelObjCmd(void * dummy=0x00000000, Tcl_Interp * interp=0x00a2be58, int objc=1, Tcl_Obj * const * objv=0x00a3061c) Line 948 + 0x19 bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=3, Tcl_Obj * const * objv=0x00a30614, const char * command=0xffffffff, int length=-1, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclExecuteByteCode(Tcl_Interp * interp=0x00a2be58, ByteCode * codePtr=0x01076e38) Line 2328 + 0x1d bytes C
tcl85tg.dll!TclObjInterpProcCore(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * procNameObj=0x0109d908, int skip=1, void (Tcl_Interp *, Tcl_Obj *)* errorProc=0x100e3cc0) Line 1758 + 0xd bytes C
tcl85tg.dll!TclObjInterpProc(void * clientData=0x00fd2278, Tcl_Interp * interp=0x00a2be58, int objc=6, Tcl_Obj * const * objv=0x00a30250) Line 1652 + 0x16 bytes C
tcl85tg.dll!InvokeImportedCmd(void * clientData=0x01001988, Tcl_Interp * interp=0x00a2be58, int objc=6, Tcl_Obj * const * objv=0x00a30250) Line 1890 + 0x1d bytes C
tcl85tg.dll!TclEvalObjvInternal(Tcl_Interp * interp=0x00a2be58, int objc=6, Tcl_Obj * const * objv=0x00a30250, const char * command=0x00abfa00, int length=429, int flags=0) Line 3689 + 0x1d bytes C
tcl85tg.dll!TclEvalEx(Tcl_Interp * interp=0x00a2be58, const char * script=0x00ab88e0, int numBytes=57144, int flags=0, int line=914, int * clNextOuter=0x00000000, const char * outerScript=0x00ab88e0) Line 4387 + 0x21 bytes C
tcl85tg.dll!Tcl_EvalEx(Tcl_Interp * interp=0x00a2be58, const char * script=0x00ab88e0, int numBytes=57144, int flags=0) Line 4043 + 0x1d bytes C
tcl85tg.dll!Tcl_FSEvalFileEx(Tcl_Interp * interp=0x00a2be58, Tcl_Obj * pathPtr=0x00a7b760, const char * encodingName=0x00000000) Line 1814 + 0x13 bytes C
tcl85tg.dll!Tcl_Main(int argc=-1, char * * argv=0x00a27da8, int (Tcl_Interp *)* appInitProc=0x004165d0) Line 441 + 0x11 bytes C
tcltest.exe!main(int argc=36, char * * argv=0x00a27d18) Line 102 + 0x15 bytes C
tcltest.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C
tcltest.exe!mainCRTStartup() Line 403 C
kernel32.dll!7c817077()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]

Discussion

  • Don Porter
    Don Porter
    2009-10-19

    Works For Me on linux (Centos 5.3).

     
  • Joe Mistachkin
    Joe Mistachkin
    2009-11-02

    Is this related to 2884203? Perhaps it is a duplicate?

     
  • Don Porter
    Don Porter
    2009-11-03

    2884203 is fixed now. Is this fixed as well?

     
  • Don Porter
    Don Porter
    2009-11-03

    • status: open --> pending
     
  • Joe Mistachkin
    Joe Mistachkin
    2009-11-03

    This test does not cause a segfault in core-8-5-branch now. However, there was another segfault during my test run (see bug 2891556) that could indicate generic heap corruption.

     
  • Joe Mistachkin
    Joe Mistachkin
    2009-11-03

    • status: pending --> open
     
  • miguel sofer
    miguel sofer
    2009-12-11

    • assigned_to: msofer --> mistachkin
    • status: open --> pending
     
    • status: pending --> closed
     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).