MPS issue job003520

TitleMVT assertion gcseg->buffer == NULL in djbench
Statusclosed
Priorityoptional
Assigned userRichard Brooksby
OrganizationRavenbrook
Descriptionp4 sync //info.ravenbrook.com/project/mps/branch/2013-06-08/benchmarks/...@182776
xcodebuild -config Release -target djbench
xc/Release/djbench --seed=1857658610 mvt
seed: 1857658610
/Volumes/Silverbird-HD/Local/Users/rb/p4/ravenbrook/mps/branch/benchmarks/code/seg.c:1113: MPS ASSERTION FAILED: gcseg->buffer == NULL
/Volumes/Silverbird-HD/Local/Users/rb/p4/ravenbrook/mps/branch/benchmarks/code/seg.c:626: MPS ASSERTION FAILED: SigCheck Seg: seg
Segmentation fault: 11
AnalysisThe MVT pool attempts to free segments to which buffers are still attached. It appears that MVTReturnSegs does nothing to avoid returning a buffered segment that has been entirely freed without first detaching the buffer (if that's possible).

Note that the assertion takes many minutes to reach in a COOL build.
How foundmanual_test
EvidenceSee description.
Test proceduredjbench --seed=1857658610 mvt
Created byRichard Brooksby
Created on2013-06-16 19:14:41
Last modified byRichard Brooksby
Last modified on2014-02-19 13:58:37
History2013-06-16 RB Created.

Fixes

Change Effect Date User Description
184389 closed 2014-02-19 13:58:37 Richard Brooksby Detaching buffers from segments before freeing them in MVT.