From: <no...@so...> - 2002-08-07 20:45:51
|
Bugs item #589863, was opened at 2002-08-01 20:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=589863&group_id=10894 Category: 39. Memory Allocation Group: None Status: Open Resolution: None Priority: 9 Submitted By: miguel sofer (msofer) Assigned to: Vince Darley (vincentdarley) Summary: corruption in execution traces? Initial Comment: (make test, -DTCL_MEM_DEBUG): ==== trace-24.5 delete trace during all exec traces except enter FAILED ==== Contents of test case: set info {} trace add execution foo {leave enterstep leavestep} [list traceDelete foo] foo 1 list $info [trace info execution foo] ---- Result was: {{set b 1} entersdep} {} ---- Result should have been (exact matching): {{set b 1} enterstep} {} ==== trace-24.5 FAILED Note the corrupted "entersdep" ... ---------------------------------------------------------------------- >Comment By: miguel sofer (msofer) Date: 2002-08-07 17:45 Message: Logged In: YES user_id=148712 Bug 547534 probably refers to this same problem. dkf's original report is: Yuck. With a recent build of Tcl (not quite the HEAD) I found this: % proc bar {ctx from to op} { puts [incr ::i]:[info level 0] rename $from {} } % proc foo args {} % trace add command foo delete "bar 1" % trace add command foo delete "bar 2" % trace add command foo delete "bar 3" % rename foo {} 1:bar 3 foo {} delete 2:bar 2 foo {} delete 3:bar 1 elete {} delete Looks like there's some memory corruption in there! ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2002-08-07 12:39 Message: Logged In: YES user_id=148712 Vince, can you please take a look at this? Maybe you and/orHemang can help sort it out. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2002-08-07 09:40 Message: Logged In: YES user_id=79902 Looks good to me (or at least definitely not bad!) ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2002-08-06 13:45 Message: Logged In: YES user_id=148712 Attached a patch that seems to solve the UMR issue - Jeff, could you confirm this is OK? Wrt the invalid read/write in TclCheckInterpTraces (tclCmdMZ.c:4157): this seems to be the cause of the above corruption, the error is triggered by 24.5 and also by 25.10: after calling the trace procedure, we update the trace flags and set a pointer to the struct. Trouble is, the trace procedure freed the struct's memory. Maybe we should Tcl_Preserve the Trace structure? ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2002-08-05 17:56 Message: Logged In: YES user_id=148712 There is definitely a memory problem with delete traces; I enclose a summary of the relevant errors detected by valgrind running with -DPURIFY. In particular, it reports a read/write of freed memory in test 24.5 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=589863&group_id=10894 |