for BIT in $(seq 0 31); do make clean && rm -f objs.txt && BIT=$BIT make -j9 && cp arch/x86/boot/bzImage kernel_${BIT}.bzimg && mv objs.txt objs_${BIT}.txt ; donehttps://twitter.com/marcan42/status/928571175210323968 …
-
-


DING DING

$ grep '^[0246][012389ab][0189][014589cd][028a][012389ab][014589cd]' objs_0.txt
6b9cab4f arch/x86/entry/vdso/vclock_gettime.o #yes, grep for bitops Who'd have thought a *userspace* crash would depend on a difference in vdso code... which is userspace code!Show this thread -
Surprise, it's Go's fault. Turns out 104 bytes of stack space is not enough when GCC decides to do a 4K stack probe. And stack probes are *exactly* what would cause nondeterministic corruption if another thread races that address!https://github.com/golang/go/issues/20427#issuecomment-343255844 …
Show this thread -
So my second time stumbling upon and debugging a Go runtime bug *again* winds up being a problem with Go->C interop. Still not a fan of Go.
Show this thread
End of conversation
New conversation -
-
-
If only Linux had a decent debugger, eh?
-
If only the golang runtime weren't an undebuggable mess. This is a *userspace* crash, and it's totally random messy crap. It's just somehow triggered by a kernel difference.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.