diff options
author | Russ Cox <rsc@golang.org> | 2014-11-05 14:42:24 -0500 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-11-05 14:42:24 -0500 |
commit | 6d5e8c9c938b45ddcc62470a790408642a26218b (patch) | |
tree | 99dae9b3f0668dabaf2013f1486ec1b14d0b0fb3 | |
parent | c4bde225a28b8ce8e0b2075c912f7726b3756300 (diff) | |
download | go-6d5e8c9c938b45ddcc62470a790408642a26218b.tar.gz |
[dev.garbage] runtime: ignore objects in dead spans
We still don't know why this is happening.
LGTM=rlh
R=rlh
CC=golang-codereviews
https://codereview.appspot.com/169990043
-rw-r--r-- | src/runtime/mgc0.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/runtime/mgc0.c b/src/runtime/mgc0.c index 77a6c9377..3ebaf005f 100644 --- a/src/runtime/mgc0.c +++ b/src/runtime/mgc0.c @@ -326,12 +326,16 @@ objectstart(byte *b, Markbits *mbits) // The following ensures that we are rigorous about what data // structures hold valid pointers - runtime·printf("runtime:objectstart Span weird: obj=%p, k=%p", obj, k); - if (s == nil) - runtime·printf(" s=nil\n"); - else - runtime·printf(" s->start=%p s->limit=%p, s->state=%d\n", s->start*PageSize, s->limit, s->state); - runtime·throw("objectstart: bad span"); + if(0) { + // Still happens sometimes. We don't know why. + runtime·printf("runtime:objectstart Span weird: obj=%p, k=%p", obj, k); + if (s == nil) + runtime·printf(" s=nil\n"); + else + runtime·printf(" s->start=%p s->limit=%p, s->state=%d\n", s->start*PageSize, s->limit, s->state); + runtime·throw("objectstart: bad pointer in unexpected span"); + } + return nil; } p = (byte*)((uintptr)s->start<<PageShift); if(s->sizeclass != 0) { |