| Title | Assertion in SegSetGrey when using AMCZ |
| Status | closed |
| Priority | essential |
| Assigned user | Gareth Rees |
| Organization | Ravenbrook |
| Description | I tried segregating objects in the toy Scheme interpreter, and when I collect, I get this assertion. (Everything is fine if I used AMC, or LO.) MPS ASSERTION FAILURE: SegRankSet(seg) != RankSetEMPTY ../../code/seg.c 270 |
| Analysis | Backtrace shows: #3 0x0000000100026e05 in SegSetGrey (seg=0x101ffd590, grey=1) at seg.c:270 #4 0x000000010005d69e in amcFixInPlace (pool=0x101ffe9a0, seg=0x101ffd590, ss=0x7fff5fbff300, refIO=0x7fff5fbff058) at poolamc.c:1675 #5 0x000000010005c40b in AMCFix (pool=0x101ffe9a0, ss=0x7fff5fbff300, seg=0x101ffd590, refIO=0x7fff5fbff058) at poolamc.c:1771 The offending assertion was added by RB in change 179567 [1]. RB says that he forgot about the AMCZ case. |
| How found | manual_test |
| Evidence | [1] <http://info.ravenbrook.com/infosys/cgi/perfbrowse.cgi?@describe+179567> |
| Created by | Gareth Rees |
| Created on | 2012-11-01 16:35:35 |
| Last modified by | Gareth Rees |
| Last modified on | 2014-04-12 22:08:41 |
| History | 2012-11-01 GDR Created. |
| Change | Effect | Date | User | Description |
|---|---|---|---|---|
| 180236 | closed | 2012-11-01 17:21:57 | Gareth Rees | AMC can't omit the guard "SegRankSet(seg) != RankSetEMPTY" for calling SegSetGrey, because AMCZ uses segments with an empty rank set. It's OK to call SegSetGrey on a segment with an empty rank set so long as you are not actually setting it to be grey for any traces, so correct the AVER accordingly. |