Ticket UUID: | a84a72096602821953f6d1d9f623d67e4a69e2d0 | |||
Title: | Crash when deleting interpreter in combination with oo deletemethod | |||
Type: | Bug | Version: | 8.6.1 | |
Submitter: | apnadkarni | Created on: | 2014-07-31 04:00:32 | |
Subsystem: | 35. TclOO Package | Assigned To: | dgp | |
Priority: | 8 | Severity: | Critical | |
Status: | Closed | Last Modified: | 2014-07-31 19:59:38 | |
Resolution: | Fixed | Closed By: | dgp | |
Closed on: | 2014-07-31 19:59:38 | |||
Description: |
The following code causes the tclsh to crash (8.6.0 and 8.6.1) interp create ip; # Need slave because crash only occurs when interp is deleted set script { oo::class create C {method m {} {}} C create c c m oo::define C {deletemethod m} c m } catch { interp eval ip $script } interp delete ip If method m is not deleted or not called after deletion,or interp is not deleted, crash does not occur. /Ashok | |||
User Comments: |
dgp added on 2014-07-31 19:59:38:
fixed on trunk. dgp added on 2014-07-31 19:38:13: What's that I was saying? http://core.tcl.tk/tcl/tktview?name=75b8433707 dgp added on 2014-07-31 19:29:42: Program received signal SIGSEGV, Segmentation fault. 0x00000000005a57e8 in TclOODeleteChain (callPtr=0x0) at /home/dgp/fossil/tcl/generic/tclOOCall.c:153 153 if (--callPtr->refCount >= 1) { (gdb) bt #0 0x00000000005a57e8 in TclOODeleteChain (callPtr=0x0) at /home/dgp/fossil/tcl/generic/tclOOCall.c:153 #1 0x000000000059edc4 in ReleaseClassContents (interp=0x8daef8, oPtr=0x9bdce8) at /home/dgp/fossil/tcl/generic/tclOO.c:1051 #2 0x000000000059e5a9 in ObjectRenamedTrace (clientData=0x9bdce8, interp=0x8daef8, oldName=0x9b6108 "::C", newName=0x0, flags=16512) at /home/dgp/fossil/tcl/generic/tclOO.c:874 #3 0x00000000004131f7 in CallCommandTraces (iPtr=0x8daef8, cmdPtr=0x9c32b8, oldName=0x9b6108 "::C", newName=0x0, flags=16512) at /home/dgp/fossil/tcl/generic/tclBasic.c:3268 #4 0x0000000000412e32 in Tcl_DeleteCommandFromToken (interp=0x8daef8, cmd=0x9c32b8) at /home/dgp/fossil/tcl/generic/tclBasic.c:3075 #5 0x0000000000545426 in TclTeardownNamespace (nsPtr=0x904838) at /home/dgp/fossil/tcl/generic/tclNamesp.c:1133 #6 0x0000000000410c47 in DeleteInterpProc (interp=0x8daef8) at /home/dgp/fossil/tcl/generic/tclBasic.c:1449 #7 0x000000000055ebe8 in Tcl_EventuallyFree (clientData=0x8daef8, freeProc=0x410a8a <DeleteInterpProc>) at /home/dgp/fossil/tcl/generic/tclPreserve.c:296 #8 0x0000000000410a88 in Tcl_DeleteInterp (interp=0x8daef8) at /home/dgp/fossil/tcl/generic/tclBasic.c:1338 #9 0x000000000051ca34 in SlaveObjCmdDeleteProc (clientData=0x8daef8) at /home/dgp/fossil/tcl/generic/tclInterp.c:2715 #10 0x0000000000412f2d in Tcl_DeleteCommandFromToken (interp=0x822648, cmd=0x996d08) at /home/dgp/fossil/tcl/generic/tclBasic.c:3130 dgp added on 2014-07-31 11:34:26: Crash is present since the very first checkin of TclOO to Tcl: checkout: e46e1575d392981d674e659a6c6649dc51ecf5dc 2008-05-31 11:41:59 UTC |