gen2brain / malgo

Mini audio library
The Unlicense
288 stars 49 forks source link

test segfault after upgrade to v0.11.10 #43

Closed edaniels closed 1 year ago

edaniels commented 1 year ago

one commit prior works but now we get this on macos (13):


[signal SIGSEGV: segmentation violation code=0x2 addr=0x10 pc=0x19ba11218]

runtime stack:
runtime.throw({0x1044fb29f?, 0x16bab10c0?})
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/panic.go:1047 +0x40 fp=0x16bab1060 sp=0x16bab1030 pc=0x104381b60
runtime.sigpanic()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/signal_unix.go:819 +0x1e4 fp=0x16bab1090 sp=0x16bab1060 pc=0x1043974d4

goroutine 7 [syscall]:
runtime.cgocall(0x10443c350, 0x14000058a68)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/cgocall.go:158 +0x54 fp=0x14000058a30 sp=0x140000589f0 pc=0x104350124
github.com/gen2brain/malgo._Cfunc_ma_device_init(0x135b04080, 0x14000000360, 0x138808200)
    _cgo_gotypes.go:1727 +0x38 fp=0x14000058a60 sp=0x14000058a30 pc=0x1044368a8
github.com/gen2brain/malgo.InitDevice.func2({0xac4400000001?}, 0x0?, 0x0?)
    /Users/eric/malgo/device.go:51 +0xa4 fp=0x14000058ab0 sp=0x14000058a60 pc=0x104438114
github.com/gen2brain/malgo.InitDevice({0x0?}, {0x1, 0xac44, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...}, ...)
    /Users/eric/malgo/device.go:51 +0x198 fp=0x14000058d50 sp=0x14000058ab0 pc=0x104437e08
github.com/gen2brain/malgo_test.TestErrors(0x14000138b60)
    /Users/eric/malgo/miniaudio_test.go:147 +0x17c fp=0x14000058f60 sp=0x14000058d50 pc=0x10443b8ec
testing.tRunner(0x14000138b60, 0x104563128)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1446 +0x10c fp=0x14000058fb0 sp=0x14000058f60 pc=0x1044003ac
testing.(*T).Run.func1()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1493 +0x2c fp=0x14000058fd0 sp=0x14000058fb0 pc=0x1044010ec
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x14000058fd0 sp=0x14000058fd0 pc=0x1043b1d94
created by testing.(*T).Run
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1493 +0x300

goroutine 1 [chan receive]:
runtime.gopark(0x14000115a68?, 0x104351b34?, 0x78?, 0x5a?, 0x10435967c?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:363 +0xe4 fp=0x140001159f0 sp=0x140001159d0 pc=0x1043844a4
runtime.chanrecv(0x140001341c0, 0x14000115aff, 0x1)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/chan.go:583 +0x454 fp=0x14000115a80 sp=0x140001159f0 pc=0x104352e84
runtime.chanrecv1(0x14000012450?, 0x1?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/chan.go:442 +0x14 fp=0x14000115ab0 sp=0x14000115a80 pc=0x104352a24
testing.(*T).Run(0x14000003d40, {0x1044f3988?, 0xacb88d9f6ee?}, 0x104563128)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1494 +0x314 fp=0x14000115b50 sp=0x14000115ab0 pc=0x104401044
testing.runTests.func1(0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1846 +0x70 fp=0x14000115ba0 sp=0x14000115b50 pc=0x104402cb0
testing.tRunner(0x14000003d40, 0x14000115cb8)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1446 +0x10c fp=0x14000115bf0 sp=0x14000115ba0 pc=0x1044003ac
testing.runTests(0x140001200a0?, {0x10461a400, 0x4, 0x4}, {0x8300000000000000?, 0x83c14fc439cdb9ed?, 0x1046202a0?})
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1844 +0x3f0 fp=0x14000115ce0 sp=0x14000115bf0 pc=0x104402b70
testing.(*M).Run(0x140001200a0)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/testing/testing.go:1726 +0x4f0 fp=0x14000115ee0 sp=0x14000115ce0 pc=0x104401910
main.main()
    _testmain.go:55 +0x1d0 fp=0x14000115f70 sp=0x14000115ee0 pc=0x10443bdf0
runtime.main()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:250 +0x24c fp=0x14000115fd0 sp=0x14000115f70 pc=0x1043840dc
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x14000115fd0 sp=0x14000115fd0 pc=0x1043b1d94

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:363 +0xe4 fp=0x1400004afa0 sp=0x1400004af80 pc=0x1043844a4
runtime.goparkunlock(...)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:369
runtime.forcegchelper()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:302 +0xac fp=0x1400004afd0 sp=0x1400004afa0 pc=0x10438433c
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x1400004afd0 sp=0x1400004afd0 pc=0x1043b1d94
created by runtime.init.6
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:290 +0x24

goroutine 18 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:363 +0xe4 fp=0x14000046770 sp=0x14000046750 pc=0x1043844a4
runtime.goparkunlock(...)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgcsweep.go:278 +0xa4 fp=0x140000467b0 sp=0x14000046770 pc=0x10436ff94
runtime.gcenable.func1()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgc.go:178 +0x28 fp=0x140000467d0 sp=0x140000467b0 pc=0x104364558
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x140000467d0 sp=0x140000467d0 pc=0x1043b1d94
created by runtime.gcenable
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgc.go:178 +0x74

goroutine 19 [GC scavenge wait]:
runtime.gopark(0x1400008e000?, 0x104520e38?, 0x1?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:363 +0xe4 fp=0x14000046f50 sp=0x14000046f30 pc=0x1043844a4
runtime.goparkunlock(...)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x104620320)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgcscavenge.go:389 +0x5c fp=0x14000046f80 sp=0x14000046f50 pc=0x10436df4c
runtime.bgscavenge(0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgcscavenge.go:617 +0x44 fp=0x14000046fb0 sp=0x14000046f80 pc=0x10436e4f4
runtime.gcenable.func2()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgc.go:179 +0x28 fp=0x14000046fd0 sp=0x14000046fb0 pc=0x1043644f8
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x14000046fd0 sp=0x14000046fd0 pc=0x1043b1d94
created by runtime.gcenable
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mgc.go:179 +0xb8

goroutine 3 [finalizer wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:363 +0xe4 fp=0x1400004b580 sp=0x1400004b560 pc=0x1043844a4
runtime.goparkunlock(...)
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/proc.go:369
runtime.runfinq()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mfinal.go:180 +0x120 fp=0x1400004b7d0 sp=0x1400004b580 pc=0x104363780
runtime.goexit()
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/asm_arm64.s:1172 +0x4 fp=0x1400004b7d0 sp=0x1400004b7d0 pc=0x1043b1d94
created by runtime.createfing
    /opt/homebrew/Cellar/go/1.19.3/libexec/src/runtime/mfinal.go:157 +0x84
exit status 2
FAIL    github.com/gen2brain/malgo  2.208s```
edaniels commented 1 year ago

~Note, if you do go test -v -run TestErrors it works fine but go test fails implying some kind of shared global state issue.~ appears flaky