Ticket UUID: | 1671001 | |||
Title: | [dict update] crash | |||
Type: | Bug | Version: | obsolete: 8.5a6 | |
Submitter: | dgp | Created on: | 2007-02-28 15:53:51 | |
Subsystem: | 47. Bytecode Compiler | Assigned To: | dkf | |
Priority: | 9 Immediate | Severity: | ||
Status: | Closed | Last Modified: | 2007-03-02 17:42:37 | |
Resolution: | Fixed | Closed By: | dkf | |
Closed on: | 2007-03-02 10:40:08 | |||
Description: |
This script crashes in INST_DICT_UPDATE_START: proc demo x { set indices {2 3} trace add variable aa write {string length $indices ;# } dict update x k aa l bb {} } demo {k 1 l 2} Same issue as other recent crash bugs. A pointer into a List rep is retrieved, not preserved, and attempts to use after shimmering invalidates lead to crash. | |||
User Comments: |
dkf added on 2007-03-02 17:42:37:
Logged In: YES user_id=79902 Originator: NO Solved by using aux-data instead of refcounting the list internal rep; leads (with other changes) to clearer code output when debugging. dkf added on 2007-03-01 16:02:22: Logged In: YES user_id=79902 Originator: NO I know how to fix this. Thanks Don for figuring out how to actually tickle this bug. dgp added on 2007-03-01 00:02:49: File Added - 218183: 1671001.patch Logged In: YES user_id=80530 Originator: YES patch attached File Added: 1671001.patch dgp added on 2007-02-28 23:15:57: Logged In: YES user_id=80530 Originator: YES Change the "write" trace to a "read" trace and you'll get a different crash, this time in INST_DICT_UPDATE_END |
Attachments:
- 1671001.patch [download] added by dgp on 2007-03-01 00:02:49. [details]