MPS issue job003951

Titleclean-up after assertion failure may fail re-entering the MPS
Statusclosed
Priorityessential
Assigned userNick Barnes
OrganizationRavenbrook
DescriptionIf an MPS assertion fails, the client may want to clean up, for instance to dump state (e.g. the stack) to an audit file. If that clean-up code causes a protection fault, then the MPS exception filter will run, and will try to figure out which arena owns that address. This will fail even if the protection fault is not at an MPS-owned address, because all of the arena locks are taken in turn in order to discover this fact.
AnalysisThis is actually a slightly more general problem: no client callbacks (e.g. format methods) can survive any protection fault, which rules out various implementation languages and strategies for such callbacks.

See also job003911, job004006.
How foundcustomer
Evidence[1] https://info.ravenbrook.com/mail/2015/10/12/07-53-25/0/
Created byNick Barnes
Created on2015-10-14 13:07:53
Last modified byGareth Rees
Last modified on2016-09-13 17:32:07
History2015-10-14 NB Created.

Fixes

Change Effect Date User Description
192365 closed 2016-09-13 17:32:07 Gareth Rees Merge branch/2016-09-06/job004006.