Ticket UUID: | 1837392 | |||
Title: | Crash in test dict-19.2 | |||
Type: | Bug | Version: | obsolete: 8.5b3 | |
Submitter: | dkf | Created on: | 2007-11-24 01:31:41 | |
Subsystem: | 47. Bytecode Compiler | Assigned To: | dkf | |
Priority: | 9 Immediate | Severity: | ||
Status: | Closed | Last Modified: | 2007-11-24 20:44:57 | |
Resolution: | Fixed | Closed By: | dkf | |
Closed on: | 2007-11-24 13:44:57 | |||
Description: |
The test dict-19.2 apparently seems to be crashing with a stack corruption problem. (Note that this test only runs in a build with memory debugging.) Problem (which bites during either INST_DICT_APPEND or INST_DICT_LAPPEND) seems to relate to the stack being relocated during a reentrant call. I think it has to do with the use of the OBJ_UNDER_TOS macro (and friends) after something that was wrapped in [DE]CACHE_STACK_INFO when the stack moved during the recursive call. The trigger is caused by a variable trace that causes an error, so other things in TEBC might also be vulnerable... | |||
User Comments: |
dkf added on 2007-11-24 20:44:57:
Logged In: YES user_id=79902 Originator: YES Was a problem in the [dict append] compiler, which had got confused about which tokens it was working with and how many there were. Oops! msofer added on 2007-11-24 19:20:02: File Added - 255665: smash.stack Logged In: YES user_id=148712 Originator: NO Repro'ed - stack trace attached. The stack does not move in 8.5, so that suspicion is not valid. A quick glance at the macros (DE)CACHE_STACK_INFO shows that tosPtr is never rewritten File Added: smash.stack |
Attachments:
- smash.stack [download] added by msofer on 2007-11-24 19:20:02. [details]