| Title | MVT assertion gcseg->buffer == NULL in djbench |
| Status | closed |
| Priority | optional |
| Assigned user | Richard Brooksby |
| Organization | Ravenbrook |
| Description | p4 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 |
| Analysis | The 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 found | manual_test |
| Evidence | See description. |
| Test procedure | djbench --seed=1857658610 mvt |
| Created by | Richard Brooksby |
| Created on | 2013-06-16 19:14:41 |
| Last modified by | Richard Brooksby |
| Last modified on | 2014-02-19 13:58:37 |
| History | 2013-06-16 RB Created. |
| Change | Effect | Date | User | Description |
|---|---|---|---|---|
| 184389 | closed | 2014-02-19 13:58:37 | Richard Brooksby | Detaching buffers from segments before freeing them in MVT. |