Erik, any chance you're hitting this? https://github.com/golang/go/issues/20427
Related article discussing bad ram: https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/ On Mon, Dec 4, 2017, 5:35 PM 'Keith Randall' via golang-nuts < golang-nuts@googlegroups.com> wrote: > package main > > // Convert an *A to a *B, using a data race. > // Works for any types A and B. > func cast(a *A) *B { > var x interface{} > > go func() { > for i := 0; i < 100000; i++ { > x = a > } > }() > go func() { > var b *B > for i := 0; i < 100000; i++ { > x = b > } > }() > > for i := 0; i < 100000; i++ { > b, ok := x.(*B) > if ok && b != nil { > // Empty interfaces are 2 words, a type and a value. > // We managed to read the type of b, but the value of a. > return b > } > } > panic("cast failed") > } > > type A *int > type B int > > func main() { > var a *A = new(A) > b := cast(a) > *b = -1 > _ = **a // seg faults at address -1. > } > > > On Monday, December 4, 2017 at 4:57:42 AM UTC-8, Erik Quanstrom wrote: >> >> i should have mentioned the race detector found nothing. jan, can you >> give an example of a go program >> setting a pointer to -1 without using unsafe? this requires the gc to >> have free'd something that is still live, >> doesn't it? >> >> - erik >> >> On Monday, December 4, 2017 at 2:58:22 AM UTC-8, Peter Waller wrote: >>> >>> Some worthwhile reading: >>> https://software.intel.com/en-us/blogs/2013/01/06/benign-data-races-what-could-possibly-go-wrong >>> >>> Races are important, and if your program has a race, otherwise >>> impossible-seeming things can happen. First ruling out races is a >>> worthwhile activity. >>> >>> In terms of debugging it, it's difficult, but it will help a lot if you >>> can make it crash predictably. Moreso if you can share a minimum reproducer. >>> >>> When I've been in such a situation as yours, I've found that once I can >>> get it to crash predictably, it is often a short path from there to a >>> solution. >>> >>> >>> On 4 December 2017 at 06:46, <quan...@gmail.com> wrote: >>> >>>> a program not using unsafe cannot set a pointer to -1, even if there is >>>> a race, right? >>>> >>>> - erik >>>> >>>> >>>> On Sunday, December 3, 2017 at 10:20:44 PM UTC-8, Jan Mercl wrote: >>>>> >>>>> On Mon, Dec 4, 2017 at 7:03 AM <quan...@gmail.com> wrote: >>>>> >>>>> > does anyone have any idea what's going on here, or some hints on >>>>> debugging this? >>>>> >>>>> What does the race detector say? >>>>> >>>>> -- >>>>> >>>>> -j >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "golang-nuts" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to golang-nuts...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.