-
Notifications
You must be signed in to change notification settings - Fork 18k
cmd/compile: nosplit stack overflow with -gcflags "all=-N -l" -race (darwin/arm64 | Goland debug cmd) #54291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
|
I can reproduce it stably now. (go version go1.19 darwin/amd64) Outputsyscall.ptrace: nosplit stack over 792 byte limit syscall.ptrace<1> grows 120 bytes, calls syscall.ptrace1<1> grows 200 bytes, calls syscall.syscall6<1> grows 192 bytes, calls runtime.entersyscall<1> grows 32 bytes, calls runtime.reentersyscall<1> grows 64 bytes, calls runtime.save<1> grows 32 bytes, calls runtime.badctxt<1> grows 32 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 64 bytes, calls runtime.casgstatus<1> grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 24 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 24 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 72 bytes, calls runtime.osyield<1> grows 24 bytes, calls runtime.usleep<0> grows 32 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 8 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 24 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 24 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 24 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 24 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 24 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.(*guintptr).set<1> 24 bytes over limit grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 40 bytes over limit grows 72 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 16 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 16 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 16 bytes over limit grows 64 bytes, calls runtime.save<1> grows 32 bytes, calls runtime.badctxt<1> grows 32 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 64 bytes, calls runtime.save<1> grows 32 bytes, calls runtime.badctxt<1> grows 32 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 64 bytes, calls runtime.save<1> grows 32 bytes, calls runtime.badctxt<1> grows 32 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 64 bytes, calls runtime.save<1> grows 32 bytes, calls runtime.badctxt<1> grows 32 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 192 bytes, calls runtime.exitsyscall<1> grows 64 bytes, calls runtime.exitsyscallfast<1> grows 72 bytes, calls runtime.wirep<1> grows 64 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 48 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 48 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 48 bytes over limit grows 64 bytes, calls runtime.throw<1> grows 48 bytes, calls runtime.fatalthrow<1> grows 64 bytes, calls runtime.systemstack<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 48 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 48 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 48 bytes over limit grows 64 bytes, calls runtime.casgstatus<1> grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 72 bytes, calls runtime.nanotime<1> grows 24 bytes, calls runtime.nanotime1<0> grows 48 bytes, calls runtime.libcCall<1> grows 64 bytes, calls runtime.asmcgocall<0> grows 8 bytes, calls gosave_systemstack_switch<21> grows 8 bytes, calls runtime.abort<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit grows 8 bytes, calls indirect grows 8 bytes, calls runtime.morestack<0> 8 bytes over limit |
CC @aclements |
Change https://go.dev/cl/421954 mentions this issue: |
Confirmed in 1.19 version in M1 macs |
Why is this case important? The only reason to use |
|
debug with race to fix sync issues is quite usually for Gland users like me! |
I also have "-race" added to all projects that I develop by default so that I can always get race information. |
I'm not certain what we're going to do about this as this isn't necessarily a supported build configuration (AFAICT). @cuonglm filed an upstream bug with Goland: https://youtrack.jetbrains.com/issue/GO-13486/Show-warning-when-debug-is-started-with-the-race-option. Assigning this @cuonglm for now. (Feel free to unassign! This is non-binding, just for triage. :)) |
@mknyszek in VSCode (with vscode-golang), the settings used when running/building tests are the same for running tests and debugging tests, and there is no easy way to pass settings just for debugging or just for testing. This problem affects my company because we want to always enable the race detector when running tests, so we ship a shared config that sets
Unfortunately, this bug means that when we upgraded to 1.19, we can no longer use the debugger in vscode through vscode-golang, since it automatically includes the test flags when building the debug binary. This works just fine in 1.18, but breaks in 1.19, so we've since downgraded to 1.18. I don't know the best way to fix this; it's possible that in vscode-go (and i guess in other editors like Goland, as reported above) it could be solved by making it possible to pass flags "just when running tests" and "just when debugging tests". But that means every editor / setup needs to support that, and in general, encouraging your debug/testing/building code to special-case certain paths leads to increased chance of divergence and unexpected problems. I think that this should be considered a supported build configuration because |
same issue with VSCode & golang1.19.1 . |
I'm still having this issue on go version go1.19.3 darwin/arm64 even without -race enabled. I'm getting this error because of an upstream dependency on gvisor. Running go build with flags
|
Alrighty, this is affecting quite a few people. Unassigning so it goes back in the triage queue. |
There's discussion in #51256 that's relevant to fixing these nosplit stack overflow issues at a deeper level, though we probably want a shorter-term fix for this. |
The discussed fix on our side is to increase the stack guard for -race builds. We might be able to do this in |
Change https://go.dev/cl/451217 mentions this issue: |
Is there an interim workaround for this problem in GoLand on mac M1? I'm unable to debug one project... (I also see this using |
@rfay This should be fixed in go1.20rc1. If it isn't, please provide a stack trace or reproduction details so we can take a look. |
Compile time Stack trace, go1.20rc1 arm64 from goland (debugging)
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/rfay/go #gosetup
/usr/local/go/bin/go build -o /private/var/folders/3k/0159p4ld73jfbct7ykph9w340000gn/T/GoLand/___1colima_start -gcflags all=-N -l github.com/abiosoft/colima/cmd/colima #gosetup
# github.com/abiosoft/colima/cmd/colima
gvisor.dev/gvisor/pkg/refs.(*AtomicRefCount).DecRef: nosplit stack over 792 byte limit
gvisor.dev/gvisor/pkg/refs.(*AtomicRefCount).DecRef<1>
grows 48 bytes, calls gvisor.dev/gvisor/pkg/refs.(*AtomicRefCount).DecRefWithDestructor<1>
grows 144 bytes, calls gvisor.dev/gvisor/pkg/refs.(*weakRefList).Remove<1>
grows 112 bytes, calls gvisor.dev/gvisor/pkg/refs.(*weakRefEntry).SetNext<1>
grows 16 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 112 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 112 bytes, calls gvisor.dev/gvisor/pkg/refs.(*weakRefEntry).SetPrev<1>
grows 16 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 112 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
8 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
8 bytes over limit
grows 112 bytes, calls gvisor.dev/gvisor/pkg/refs.(*weakRefEntry).SetNext<1>
grows 16 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 112 bytes, calls gvisor.dev/gvisor/pkg/refs.(*weakRefEntry).SetPrev<1>
grows 16 bytes, calls runtime.gcWriteBarrier<1>
grows 224 bytes, calls runtime.wbBufFlush<0>
grows 32 bytes, calls runtime.wbBufFlush<1>
grows 32 bytes, calls runtime.cgoCheckWriteBarrier<1>
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
grows 48 bytes, calls runtime.cgoIsGoPointer<1>
grows 80 bytes, calls runtime.inHeapOrStack<1>
grows 32 bytes, calls runtime.spanOf<1>
grows 48 bytes, calls runtime.arenaIndex<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l1<1>
24 bytes over limit
grows 48 bytes, calls runtime.arenaIdx.l2<1>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 48 bytes, calls runtime.panicIndexU<1>
grows 0 bytes, calls runtime.goPanicIndexU<1>
grows 0 bytes, calls runtime.morestack<0>
24 bytes over limit
grows 32 bytes, calls runtime.(*mSpanStateBox).get<1>
grows 32 bytes, calls runtime/internal/atomic.(*Uint8).Load<1>
8 bytes over limit
|
That looks like there are nosplit directives in user code, which isn't supported. Specifically, in |
Code is https://github.com/abiosoft/colima, thanks for listening! |
But where is it getting the code for, e.g., |
Seem to solve this, even for go 1.19.4 References:
I was just trying to do a PR to colima :) I guess I'll do a first PR with a vendor upgrade. |
Hi all, still having the same problem on my intel mac. golang version is 1.19.5 |
@zwjzxh520 Can you try 1.20rc3? This issue should be fixed there. |
Leaving this here in case it helps someone:
$ go mod vendor
|
The 1.20 release fixes this for me. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes (go 1.19)
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
go build -gcflags "all=-N -l" -race -v
2 lines of code:
https://go.dev/play/p/v-LC84qDHo4
What did you expect to see?
Successful build and debug
What did you see instead?
go 1.18.5 Output
go 1.19 Output
Without
-race
everything compiles fine.The text was updated successfully, but these errors were encountered: