| Title | qs failure on ANSI platform |
| Status | closed |
| Priority | nice |
| Assigned user | Gareth Rees |
| Organization | Ravenbrook |
| Description | On branch/2014-03-25/ansi on the "ANSI" platform with PROTECTION_NONE and THREAD_SINGLE. See [1]: lii6ll/hot/qs: randomize(): choosing initial state (v3): 556818450. part int: 0 Also reproducible on xci6ll with that seed and with seed 768680355. |
| Analysis | This happens after one collection, and in the debugger we can see that reg[2] points to a forwarding object (tag == QSEvac). |
| How found | automated_test |
| Evidence | [1] <https://travis-ci.org/Ravenbrook/mps-temporary/jobs/21969826> |
| Test procedure | qs |
| Created by | Gareth Rees |
| Created on | 2014-04-01 22:14:27 |
| Last modified by | Gareth Rees |
| Last modified on | 2014-10-20 17:42:16 |
| History | 2014-04-01 GDR Created. |
| Change | Effect | Date | User | Description |
|---|---|---|---|---|
| 185176 | closed | 2014-04-02 15:48:57 | Gareth Rees | Improve clarity of product configuration so that names more explicitly indicate what they do: * CONFIG_POLL_NONE (because the user-visible consequence is that polling is no longer supported; was CONFIG_PROTECTION_NONE). * DISABLE_LOCKS (was THREAD_SINGLE). * DISABLE_SHIELD (was THREAD_SINGLE && PROTECTION_NONE) * DISABLE_REMEMBERED_SET (was PROTECTION_NONE) When the shield is disabled, ArenaLeave asserts that there are no busy traces, and ArenaPoll is a no-op. By having functions implemented using the corresponding macro, we can avoid duplicated code, and avoid testing DISABLE_SHIELD in global.c. Remove all remaining references to MPS_PROD_EPCORE. |