MPS issue job003724

Titleqs failure on ANSI platform
Statusclosed
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionOn 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.
AnalysisThis happens after one collection, and in the debugger we can see that reg[2] points to a forwarding object (tag == QSEvac).
How foundautomated_test
Evidence[1] <https://travis-ci.org/Ravenbrook/mps-temporary/jobs/21969826>
Test procedureqs
Created byGareth Rees
Created on2014-04-01 22:14:27
Last modified byGareth Rees
Last modified on2014-10-20 17:42:16
History2014-04-01 GDR Created.

Fixes

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.