From: Russ Cox Date: Wed, 5 Nov 2014 19:42:24 +0000 (-0500) Subject: [dev.garbage] runtime: ignore objects in dead spans X-Git-Tag: go1.5beta1~2684^2~20 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=91658f934d6dc4672fa1e511e37d76b4d5b6c134;p=gostls13.git [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://golang.org/cl/169990043 --- diff --git a/src/runtime/mgc0.c b/src/runtime/mgc0.c index 77a6c93776..3ebaf005f5 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<sizeclass != 0) {