Skip to content
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

Crash on exit on OpenBSD #301

Open
vext01 opened this issue Dec 18, 2023 · 4 comments
Open

Crash on exit on OpenBSD #301

vext01 opened this issue Dec 18, 2023 · 4 comments

Comments

@vext01
Copy link

vext01 commented Dec 18, 2023

Hi,

I'm an OpenBSD developer making a binary package of supersonic v0.8.2.

It all seems to be working, but I notice it crashes upon exit. Here's stdout/stderr:

2023/12/18 17:03:44 Starting supersonic...
2023/12/18 17:03:44 Using config dir: /home/edd/.config/supersonic
2023/12/18 17:03:44 Using cache dir: /home/edd/.cache/supersonic
2023/12/18 17:03:44 Error reading app config file: open /home/edd/.config/supersonic/config.toml: no such file or directory
2023/12/18 17:03:44 Creating session lock file
2023/12/18 17:03:44 failed to load theme file "": open /home/edd/.config/supersonic/themes: no such file or directory
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  Preferences API requires a unique ID, use app.NewWithID() or the FyneApp.toml ID field
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/app/app.go:60
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:44 Fyne error:  could not load SVG, falling back to static content:
2023/12/18 17:03:44   Cause: XML syntax error on line 3: invalid character entity & (no semicolon)
2023/12/18 17:03:44   At: fyne.io/fyne/v2@v2.4.1/internal/svg/svg.go:28
2023/12/18 17:03:59 error setting keyring credentials: The name org.freedesktop.secrets was not provided by any .service files
SIGSEGV: segmentation violation
PC=0x11397e3 m=0 sigcode=1
signal arrived during cgo execution

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x114c740, 0xc002059c50)
	runtime/cgocall.go:157 +0x4b fp=0xc002059c28 sp=0xc002059bf0 pc=0x9e2d6b
github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwDestroyWindow(0x2ed3f1460)
	_cgo_gotypes.go:773 +0x3f fp=0xc002059c50 sp=0xc002059c28 pc=0x10f953f
github.com/go-gl/glfw/v3.3/glfw.(*Window).Destroy.func1(0x0?)
	github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20221017161538-93cebf72946b/window.go:364 +0x3c fp=0xc002059c88 sp=0xc002059c50 pc=0x11036dc
github.com/go-gl/glfw/v3.3/glfw.(*Window).Destroy(0xc000098900)
	github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20221017161538-93cebf72946b/window.go:364 +0x2f fp=0xc002059cb0 sp=0xc002059c88 pc=0x110364f
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).runGL(0xc0003bc1c0)
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/loop.go:201 +0x65a fp=0xc002059dd0 sp=0xc002059cb0 pc=0x1117c9a
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run(0xc0003bc1c0)
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver.go:168 +0x6f fp=0xc002059df0 sp=0xc002059dd0 pc=0x111624f
fyne.io/fyne/v2/app.(*fyneApp).Run(0xc0000d61e0?)
	fyne.io/fyne/v2@v2.4.1/app/app.go:71 +0x31 fp=0xc002059e08 sp=0xc002059df0 pc=0x1127291
main.main()
	github.com/dweymouth/supersonic/main.go:77 +0x4b8 fp=0xc002059f40 sp=0xc002059e08 pc=0x112ed98
runtime.main()
	runtime/proc.go:267 +0x2b2 fp=0xc002059fe0 sp=0xc002059f40 pc=0xa16312
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc002059fe8 sp=0xc002059fe0 pc=0xa45f41

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc000058fa8 sp=0xc000058f88 pc=0xa1674e
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.forcegchelper()
	runtime/proc.go:322 +0xa5 fp=0xc000058fe0 sp=0xc000058fa8 pc=0xa165e5
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000058fe8 sp=0xc000058fe0 pc=0xa45f41
created by runtime.init.6 in goroutine 1
	runtime/proc.go:310 +0x1a

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc000059778 sp=0xc000059758 pc=0xa1674e
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.bgsweep(0x0?)
	runtime/mgcsweep.go:321 +0xdf fp=0xc0000597c8 sp=0xc000059778 pc=0xa031bf
runtime.gcenable.func1()
	runtime/mgc.go:200 +0x25 fp=0xc0000597e0 sp=0xc0000597c8 pc=0x9f8405
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000597e8 sp=0xc0000597e0 pc=0xa45f41
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:200 +0x66

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x1513cf1?, 0x3b9aca00?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc000059f70 sp=0xc000059f50 pc=0xa1674e
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.(*scavengerState).park(0x18dd2a0)
	runtime/mgcscavenge.go:425 +0x49 fp=0xc000059fa0 sp=0xc000059f70 pc=0xa00a49
runtime.bgscavenge(0x0?)
	runtime/mgcscavenge.go:658 +0x59 fp=0xc000059fc8 sp=0xc000059fa0 pc=0xa00fd9
runtime.gcenable.func2()
	runtime/mgc.go:201 +0x25 fp=0xc000059fe0 sp=0xc000059fc8 pc=0x9f83a5
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000059fe8 sp=0xc000059fe0 pc=0xa45f41
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:201 +0xa5

goroutine 18 [finalizer wait]:
runtime.gopark(0x389ac0?, 0x100a17801?, 0x0?, 0x0?, 0xa1e765?)
	runtime/proc.go:398 +0xce fp=0xc000058628 sp=0xc000058608 pc=0xa1674e
runtime.runfinq()
	runtime/mfinal.go:193 +0x107 fp=0xc0000587e0 sp=0xc000058628 pc=0x9f7487
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000587e8 sp=0xc0000587e0 pc=0xa45f41
created by runtime.createfing in goroutine 1
	runtime/mfinal.go:163 +0x3d

goroutine 19 [select]:
runtime.gopark(0xc0000547b0?, 0x2?, 0x0?, 0x0?, 0xc00005478c?)
	runtime/proc.go:398 +0xce fp=0xc000054638 sp=0xc000054618 pc=0xa1674e
runtime.selectgo(0xc0000547b0, 0xc000054788, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc000054758 sp=0xc000054638 pc=0xa25fe5
github.com/dweymouth/supersonic/backend.(*App).startConfigWriter.func1()
	github.com/dweymouth/supersonic/backend/app.go:177 +0x6e fp=0xc0000547e0 sp=0xc000054758 pc=0xd9f42e
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000547e8 sp=0xc0000547e0 pc=0xa45f41
created by github.com/dweymouth/supersonic/backend.(*App).startConfigWriter in goroutine 1
	github.com/dweymouth/supersonic/backend/app.go:176 +0xa5

goroutine 20 [syscall]:
syscall.syscall6(0xb003c0, 0x6, 0x0, 0x0, 0xc000054e70, 0xa, 0x0)
	runtime/sys_openbsd3.go:46 +0x35 fp=0xc000054ba8 sp=0xc000054b88 pc=0xa42c75
syscall.syscall6(0x0?, 0x0?, 0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	<autogenerated>:1 +0x2f fp=0xc000054c08 sp=0xc000054ba8 pc=0xa4880f
golang.org/x/sys/unix.kevent(0x0?, 0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	golang.org/x/sys@v0.13.0/unix/zsyscall_openbsd_amd64.go:276 +0x4e fp=0xc000054c70 sp=0xc000054c08 pc=0xaffd6e
golang.org/x/sys/unix.Kevent(0x0?, {0x0?, 0x0?, 0x0?}, {0xc000054e70?, 0x0?, 0x0?}, 0x0?)
	golang.org/x/sys@v0.13.0/unix/syscall_bsd.go:398 +0x35 fp=0xc000054cb0 sp=0xc000054c70 pc=0xaffc15
github.com/fsnotify/fsnotify.(*Watcher).read(0x0?, {0xc000054e70?, 0x0?, 0xa})
	github.com/fsnotify/fsnotify@v1.6.0/backend_kqueue.go:702 +0x39 fp=0xc000054d08 sp=0xc000054cb0 pc=0xb03159
github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc0003bc0e0)
	github.com/fsnotify/fsnotify@v1.6.0/backend_kqueue.go:487 +0xcb fp=0xc000054fc8 sp=0xc000054d08 pc=0xb01eab
github.com/fsnotify/fsnotify.NewWatcher.func1()
	github.com/fsnotify/fsnotify@v1.6.0/backend_kqueue.go:155 +0x25 fp=0xc000054fe0 sp=0xc000054fc8 pc=0xb00725
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000054fe8 sp=0xc000054fe0 pc=0xa45f41
created by github.com/fsnotify/fsnotify.NewWatcher in goroutine 1
	github.com/fsnotify/fsnotify@v1.6.0/backend_kqueue.go:155 +0x225

goroutine 21 [select]:
runtime.gopark(0xc0000557b0?, 0x2?, 0x0?, 0x0?, 0xc000055774?)
	runtime/proc.go:398 +0xce fp=0xc000055618 sp=0xc0000555f8 pc=0xa1674e
runtime.selectgo(0xc0000557b0, 0xc000055770, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc000055738 sp=0xc000055618 pc=0xa25fe5
github.com/dweymouth/supersonic/backend.(*App).startSessionWatcher.func1()
	github.com/dweymouth/supersonic/backend/app.go:158 +0x9b fp=0xc0000557e0 sp=0xc000055738 pc=0xd9f1db
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000557e8 sp=0xc0000557e0 pc=0xa45f41
created by github.com/dweymouth/supersonic/backend.(*App).startSessionWatcher in goroutine 1
	github.com/dweymouth/supersonic/backend/app.go:156 +0xbf

goroutine 22 [select]:
runtime.gopark(0xc0000a3fb0?, 0x2?, 0x85?, 0xbb?, 0xc0000a3f94?)
	runtime/proc.go:398 +0xce fp=0xc00006de30 sp=0xc00006de10 pc=0xa1674e
runtime.selectgo(0xc00006dfb0, 0xc0000a3f90, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc00006df50 sp=0xc00006de30 pc=0xa25fe5
github.com/dweymouth/supersonic/backend.(*UpdateChecker).Start.func1()
	github.com/dweymouth/supersonic/backend/updatechecker.go:38 +0xb1 fp=0xc00006dfe0 sp=0xc00006df50 pc=0xdac011
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00006dfe8 sp=0xc00006dfe0 pc=0xa45f41
created by github.com/dweymouth/supersonic/backend.(*UpdateChecker).Start in goroutine 1
	github.com/dweymouth/supersonic/backend/updatechecker.go:34 +0x9a

goroutine 41 [chan receive]:
runtime.gopark(0x0?, 0xc0000c5f98?, 0xdc?, 0x87?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c5f08 sp=0xc0000c5ee8 pc=0xa1674e
runtime.chanrecv(0xc000042540, 0xc0000c5fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c5f80 sp=0xc0000c5f08 pc=0x9e512d
runtime.chanrecv2(0xc0001b4480?, 0xc0000c5fd0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c5fa8 sp=0xc0000c5f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c5fe0 sp=0xc0000c5fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c5fe8 sp=0xc0000c5fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 23 [syscall]:
runtime.cgocall(0x112fd20, 0xc0000566e8)
	runtime/cgocall.go:157 +0x4b fp=0xc0000566c0 sp=0xc000056688 pc=0x9e2d6b
github.com/dweymouth/go-mpv._Cfunc_mpv_wait_event(0x26499fe50, 0x3ff0000000000000)
	_cgo_gotypes.go:847 +0x4c fp=0xc0000566e8 sp=0xc0000566c0 pc=0xae188c
github.com/dweymouth/go-mpv.(*Mpv).WaitEvent.func1(0xc000056750?, 0x9e569e?)
	github.com/dweymouth/go-mpv@v0.0.0-20230406003141-7f1858e503ee/mpv.go:215 +0x52 fp=0xc000056728 sp=0xc0000566e8 pc=0xae4ff2
github.com/dweymouth/go-mpv.(*Mpv).WaitEvent(0xc000100a50?, 0x0?)
	github.com/dweymouth/go-mpv@v0.0.0-20230406003141-7f1858e503ee/mpv.go:215 +0x17 fp=0xc000056760 sp=0xc000056728 pc=0xae4eb7
github.com/dweymouth/supersonic/player.(*Player).eventHandler(0xc00017f320, {0x4e98b8, 0xc000100a50})
	github.com/dweymouth/supersonic/player/player.go:671 +0x65 fp=0xc0000567b8 sp=0xc000056760 pc=0xae9d05
github.com/dweymouth/supersonic/player.(*Player).Init.func1()
	github.com/dweymouth/supersonic/player/player.go:181 +0x28 fp=0xc0000567e0 sp=0xc0000567b8 pc=0xae7588
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000567e8 sp=0xc0000567e0 pc=0xa45f41
created by github.com/dweymouth/supersonic/player.(*Player).Init in goroutine 1
	github.com/dweymouth/supersonic/player/player.go:181 +0x36f

goroutine 24 [select]:
runtime.gopark(0xc000056f80?, 0x2?, 0x85?, 0xbb?, 0xc000056f74?)
	runtime/proc.go:398 +0xce fp=0xc000056e20 sp=0xc000056e00 pc=0xa1674e
runtime.selectgo(0xc000056f80, 0xc000056f70, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc000056f40 sp=0xc000056e20 pc=0xa25fe5
github.com/dweymouth/supersonic/backend.(*ImageCache).periodicallyEvict(0xc0002f6f18, {0x4e98b8, 0xc000100910}, 0x0?)
	github.com/dweymouth/supersonic/backend/imagecache.go:167 +0x85 fp=0xc000056fb0 sp=0xc000056f40 pc=0xda26e5
github.com/dweymouth/supersonic/backend.(*ImageCache).Init.func1()
	github.com/dweymouth/supersonic/backend/imagecache.go:48 +0x2c fp=0xc000056fe0 sp=0xc000056fb0 pc=0xda110c
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000056fe8 sp=0xc000056fe0 pc=0xa45f41
created by github.com/dweymouth/supersonic/backend.(*ImageCache).Init in goroutine 1
	github.com/dweymouth/supersonic/backend/imagecache.go:48 +0xc9

goroutine 25 [chan receive]:
runtime.gopark(0xc000400b40?, 0xc0004027b0?, 0x40?, 0x8b?, 0xc0004027b0?)
	runtime/proc.go:398 +0xce fp=0xc000068ec8 sp=0xc000068ea8 pc=0xa1674e
runtime.chanrecv(0xc0003e0000, 0x0, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc000068f40 sp=0xc000068ec8 pc=0x9e512d
runtime.chanrecv1(0xc0003de000?, 0xc00016e570?)
	runtime/chan.go:442 +0x12 fp=0xc000068f68 sp=0xc000068f40 pc=0x9e4d32
github.com/quarckster/go-mpris-server/pkg/server.(*Server).Listen(0xc0003de000)
	github.com/quarckster/go-mpris-server@v1.0.3/pkg/server/server.go:59 +0x145 fp=0xc000068fc0 sp=0xc000068f68 pc=0xd2aca5
github.com/dweymouth/supersonic/backend.(*MPRISHandler).Start.func1()
	github.com/dweymouth/supersonic/backend/mpris.go:95 +0x25 fp=0xc000068fe0 sp=0xc000068fc0 pc=0xda6305
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000068fe8 sp=0xc000068fe0 pc=0xa45f41
created by github.com/dweymouth/supersonic/backend.(*MPRISHandler).Start in goroutine 1
	github.com/dweymouth/supersonic/backend/mpris.go:93 +0x76

goroutine 35 [GC worker (idle)]:
runtime.gopark(0xc0003e8fb8?, 0xc000390c30?, 0x2?, 0x0?, 0xc000102660?)
	runtime/proc.go:398 +0xce fp=0xc0003e8f50 sp=0xc0003e8f30 pc=0xa1674e
runtime.gcBgMarkWorker()
	runtime/mgc.go:1293 +0xe5 fp=0xc0003e8fe0 sp=0xc0003e8f50 pc=0x9f9f05
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e8fe8 sp=0xc0003e8fe0 pc=0xa45f41
created by runtime.gcBgMarkStartWorkers in goroutine 10
	runtime/mgc.go:1217 +0x1c

goroutine 11 [select, locked to thread]:
runtime.gopark(0xc000613f90?, 0x4?, 0x0?, 0x0?, 0xc000613f38?)
	runtime/proc.go:398 +0xce fp=0xc000613dd8 sp=0xc000613db8 pc=0xa1674e
runtime.selectgo(0xc000613f90, 0xc000613f30, 0x4f5130?, 0x0, 0x3f0010?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc000613ef8 sp=0xc000613dd8 pc=0xa25fe5
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/loop.go:259 +0xf1 fp=0xc000613fe0 sp=0xc000613ef8 pc=0x11180d1
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000613fe8 sp=0xc000613fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).startDrawThread in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/loop.go:255 +0xbb

goroutine 36 [GC worker (idle)]:
runtime.gopark(0xc0003e9fb8?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003e9f50 sp=0xc0003e9f30 pc=0xa1674e
runtime.gcBgMarkWorker()
	runtime/mgc.go:1293 +0xe5 fp=0xc0003e9fe0 sp=0xc0003e9f50 pc=0x9f9f05
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e9fe8 sp=0xc0003e9fe0 pc=0xa45f41
created by runtime.gcBgMarkStartWorkers in goroutine 10
	runtime/mgc.go:1217 +0x1c

goroutine 16 [runnable]:
runtime.gopark(0xc00005bf68?, 0x2?, 0x45?, 0xfe?, 0xc00005bf08?)
	runtime/proc.go:398 +0xce fp=0xc00005bda0 sp=0xc00005bd80 pc=0xa1674e
runtime.selectgo(0xc00005bf68, 0xc00005bf04, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc00005bec0 sp=0xc00005bda0 pc=0xa25fe5
fyne.io/fyne/v2/internal/async.(*UnboundedFuncChan).processing(0xc00009ad20)
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:45 +0xd5 fp=0xc00005bfc8 sp=0xc00005bec0 pc=0xe0e395
fyne.io/fyne/v2/internal/async.NewUnboundedFuncChan.func1()
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:22 +0x25 fp=0xc00005bfe0 sp=0xc00005bfc8 pc=0xe0e205
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00005bfe8 sp=0xc00005bfe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/async.NewUnboundedFuncChan in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:22 +0xe5

goroutine 50 [chan receive]:
runtime.gopark(0xc00007e480?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003e46f8 sp=0xc0003e46d8 pc=0xa1674e
runtime.chanrecv(0xc00007f4a0, 0xc0003e47b0, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e4770 sp=0xc0003e46f8 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003e4798 sp=0xc0003e4770 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/common.(*Window).RunEventQueue(0x0?)
	fyne.io/fyne/v2@v2.4.1/internal/driver/common/window.go:34 +0x47 fp=0xc0003e47c8 sp=0xc0003e4798 pc=0x10f7f47
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1.1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/window.go:959 +0x25 fp=0xc0003e47e0 sp=0xc0003e47c8 pc=0x1120a45
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e47e8 sp=0xc0003e47e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).createWindow.func1 in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/window.go:959 +0x139

goroutine 38 [IO wait]:
runtime.gopark(0xb?, 0xc000412000?, 0x80?, 0xc?, 0xffffffffffffffff?)
	runtime/proc.go:398 +0xce fp=0xc00006b5c8 sp=0xc00006b5a8 pc=0xa1674e
runtime.netpollblock(0xa95425?, 0x9e2906?, 0x0?)
	runtime/netpoll.go:564 +0xf7 fp=0xc00006b600 sp=0xc00006b5c8 pc=0xa0fcb7
internal/poll.runtime_pollWait(0x2ae0c0e28, 0x72)
	runtime/netpoll.go:343 +0x85 fp=0xc00006b620 sp=0xc00006b600 pc=0xa40605
internal/poll.(*pollDesc).wait(0xc0000aa180?, 0xc000412000?, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc00006b648 sp=0xc00006b620 pc=0xaafea7
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0000aa180, {0xc000412000, 0xc80, 0xc80})
	internal/poll/fd_unix.go:164 +0x27a fp=0xc00006b6e0 sp=0xc00006b648 pc=0xab119a
net.(*netFD).Read(0xc0000aa180, {0xc000412000?, 0xc00006b7f0?, 0x9f3bc8?})
	net/fd_posix.go:55 +0x25 fp=0xc00006b728 sp=0xc00006b6e0 pc=0xb31505
net.(*conn).Read(0xc00005c068, {0xc000412000?, 0x9ffe45?, 0x2?})
	net/net.go:179 +0x45 fp=0xc00006b770 sp=0xc00006b728 pc=0xb3dd85
net.(*TCPConn).Read(0xc00006b808?, {0xc000412000?, 0xc0013aad98?, 0x18?})
	<autogenerated>:1 +0x25 fp=0xc00006b7a0 sp=0xc00006b770 pc=0xb4db85
crypto/tls.(*atLeastReader).Read(0xc0013aad98, {0xc000412000?, 0xc0013aad98?, 0x0?})
	crypto/tls/conn.go:805 +0x3b fp=0xc00006b7e8 sp=0xc00006b7a0 pc=0xc6597b
bytes.(*Buffer).ReadFrom(0xc0000e62a8, {0x4e4ac0, 0xc0013aad98})
	bytes/buffer.go:211 +0x98 fp=0xc00006b840 sp=0xc00006b7e8 pc=0xaead18
crypto/tls.(*Conn).readFromUntil(0xc0000e6000, {0x2ae0c1098?, 0xc00005c068}, 0x500?)
	crypto/tls/conn.go:827 +0xde fp=0xc00006b880 sp=0xc00006b840 pc=0xc65b5e
crypto/tls.(*Conn).readRecordOrCCS(0xc0000e6000, 0x0)
	crypto/tls/conn.go:625 +0x250 fp=0xc00006bc20 sp=0xc00006b880 pc=0xc63130
crypto/tls.(*Conn).readRecord(...)
	crypto/tls/conn.go:587
crypto/tls.(*Conn).Read(0xc0000e6000, {0xc0000ca000, 0x1000, 0xa60013?})
	crypto/tls/conn.go:1369 +0x158 fp=0xc00006bc90 sp=0xc00006bc20 pc=0xc693f8
bufio.(*Reader).Read(0xc0005c15c0, {0xc0005b3b60, 0x9, 0xc00006bd38?})
	bufio/bufio.go:244 +0x197 fp=0xc00006bcc8 sp=0xc00006bc90 pc=0xaef837
io.ReadAtLeast({0x4e3a20, 0xc0005c15c0}, {0xc0005b3b60, 0x9, 0x9}, 0x9)
	io/io.go:335 +0x90 fp=0xc00006bd10 sp=0xc00006bcc8 pc=0xa8ccb0
io.ReadFull(...)
	io/io.go:354
net/http.http2readFrameHeader({0xc0005b3b60, 0x9, 0x0?}, {0x4e3a20?, 0xc0005c15c0?})
	net/http/h2_bundle.go:1635 +0x65 fp=0xc00006bd60 sp=0xc00006bd10 pc=0xcca745
net/http.(*http2Framer).ReadFrame(0xc0005b3b20)
	net/http/h2_bundle.go:1899 +0x85 fp=0xc00006be08 sp=0xc00006bd60 pc=0xccae85
net/http.(*http2clientConnReadLoop).run(0xc00006bf98)
	net/http/h2_bundle.go:9338 +0x11f fp=0xc00006bf60 sp=0xc00006be08 pc=0xcdd5bf
net/http.(*http2ClientConn).readLoop(0xc0001b4180)
	net/http/h2_bundle.go:9233 +0x65 fp=0xc00006bfc8 sp=0xc00006bf60 pc=0xcdcb45
net/http.(*http2Transport).newClientConn.func3()
	net/http/h2_bundle.go:7905 +0x25 fp=0xc00006bfe0 sp=0xc00006bfc8 pc=0xcd5a25
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00006bfe8 sp=0xc00006bfe0 pc=0xa45f41
created by net/http.(*http2Transport).newClientConn in goroutine 37
	net/http/h2_bundle.go:7905 +0xcbe

goroutine 42 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c6708 sp=0xc0000c66e8 pc=0xa1674e
runtime.chanrecv(0xc0000427e0, 0xc0000c67bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c6780 sp=0xc0000c6708 pc=0x9e512d
runtime.chanrecv2(0xc0001b4300?, 0xc0000c67d0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c67a8 sp=0xc0000c6780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c67e0 sp=0xc0000c67a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c67e8 sp=0xc0000c67e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 43 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c6f08 sp=0xc0000c6ee8 pc=0xa1674e
runtime.chanrecv(0xc000042840, 0xc0000c6fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c6f80 sp=0xc0000c6f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c6fa8 sp=0xc0000c6f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c6fe0 sp=0xc0000c6fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c6fe8 sp=0xc0000c6fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 44 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c7708 sp=0xc0000c76e8 pc=0xa1674e
runtime.chanrecv(0xc0000428a0, 0xc0000c77bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c7780 sp=0xc0000c7708 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c77a8 sp=0xc0000c7780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c77e0 sp=0xc0000c77a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c77e8 sp=0xc0000c77e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 45 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c7f08 sp=0xc0000c7ee8 pc=0xa1674e
runtime.chanrecv(0xc000042900, 0xc0000c7fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c7f80 sp=0xc0000c7f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c7fa8 sp=0xc0000c7f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c7fe0 sp=0xc0000c7fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c7fe8 sp=0xc0000c7fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 46 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003ea708 sp=0xc0003ea6e8 pc=0xa1674e
runtime.chanrecv(0xc000042960, 0xc0003ea7bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003ea780 sp=0xc0003ea708 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003ea7a8 sp=0xc0003ea780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003ea7e0 sp=0xc0003ea7a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003ea7e8 sp=0xc0003ea7e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 47 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003eaf08 sp=0xc0003eaee8 pc=0xa1674e
runtime.chanrecv(0xc0000429c0, 0xc0003eafbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003eaf80 sp=0xc0003eaf08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003eafa8 sp=0xc0003eaf80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003eafe0 sp=0xc0003eafa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003eafe8 sp=0xc0003eafe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 48 [chan receive]:
runtime.gopark(0xa3311e?, 0xc000048500?, 0xc8?, 0xc8?, 0x44d16ad2454?)
	runtime/proc.go:398 +0xce fp=0xc0003e4ef8 sp=0xc0003e4ed8 pc=0xa1674e
runtime.chanrecv(0xc00012db60, 0xc0003e4fb8, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e4f70 sp=0xc0003e4ef8 pc=0x9e512d
runtime.chanrecv2(0x1bf08eb000?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003e4f98 sp=0xc0003e4f70 pc=0x9e4d52
github.com/dweymouth/supersonic/ui/util.NewWidgetPool.func1()
	github.com/dweymouth/supersonic/ui/util/widgetpool.go:46 +0x67 fp=0xc0003e4fe0 sp=0xc0003e4f98 pc=0x103c587
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e4fe8 sp=0xc0003e4fe0 pc=0xa45f41
created by github.com/dweymouth/supersonic/ui/util.NewWidgetPool in goroutine 1
	github.com/dweymouth/supersonic/ui/util/widgetpool.go:44 +0xb6

goroutine 55 [chan receive]:
runtime.gopark(0xc0003e96e0?, 0x110bd25?, 0x1?, 0x92?, 0xc0003e9758?)
	runtime/proc.go:398 +0xce fp=0xc0003e96c8 sp=0xc0003e96a8 pc=0xa1674e
runtime.chanrecv(0xc0004e3320, 0x0, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e9740 sp=0xc0003e96c8 pc=0x9e512d
runtime.chanrecv1(0xc0004e3320?, 0xc0003e9798?)
	runtime/chan.go:442 +0x12 fp=0xc0003e9768 sp=0xc0003e9740 pc=0x9e4d32
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).catchTerm(0x0?)
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:181 +0x85 fp=0xc0003e97c8 sp=0xc0003e9768 pc=0x1116d05
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver.go:167 +0x25 fp=0xc0003e97e0 sp=0xc0003e97c8 pc=0x11162a5
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e97e8 sp=0xc0003e97e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).Run in goroutine 1
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver.go:167 +0x65

goroutine 57 [select, locked to thread]:
runtime.gopark(0xc0003e5fa8?, 0x2?, 0xe9?, 0x69?, 0xc0003e5fa4?)
	runtime/proc.go:398 +0xce fp=0xc0003e5e40 sp=0xc0003e5e20 pc=0xa1674e
runtime.selectgo(0xc0003e5fa8, 0xc0003e5fa0, 0x0?, 0x0, 0x0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc0003e5f60 sp=0xc0003e5e40 pc=0xa25fe5
runtime.ensureSigM.func1()
	runtime/signal_unix.go:1014 +0x16f fp=0xc0003e5fe0 sp=0xc0003e5f60 pc=0xa3d06f
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e5fe8 sp=0xc0003e5fe0 pc=0xa45f41
created by runtime.ensureSigM in goroutine 55
	runtime/signal_unix.go:997 +0xc8

goroutine 58 [syscall]:
runtime.notetsleepg(0x0?, 0x0?)
	runtime/lock_sema.go:294 +0x29 fp=0xc0003e67a0 sp=0xc0003e6758 pc=0x9ea649
os/signal.signal_recv()
	runtime/sigqueue.go:152 +0x29 fp=0xc0003e67c0 sp=0xc0003e67a0 pc=0xa42629
os/signal.loop()
	os/signal/signal_unix.go:23 +0x13 fp=0xc0003e67e0 sp=0xc0003e67c0 pc=0x110c053
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e67e8 sp=0xc0003e67e0 pc=0xa45f41
created by os/signal.Notify.func1.1 in goroutine 55
	os/signal/signal.go:151 +0x1f

goroutine 59 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0xc0003907b0?)
	runtime/proc.go:398 +0xce fp=0xc00005b708 sp=0xc00005b6e8 pc=0xa1674e
runtime.chanrecv(0xc0013a4300, 0xc00005b7bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc00005b780 sp=0xc00005b708 pc=0x9e512d
runtime.chanrecv2(0xc00005b7d0?, 0x110dacf?)
	runtime/chan.go:447 +0x12 fp=0xc00005b7a8 sp=0xc00005b780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc00005b7e0 sp=0xc00005b7a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00005b7e8 sp=0xc00005b7e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 60 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003e6f08 sp=0xc0003e6ee8 pc=0xa1674e
runtime.chanrecv(0xc0013a4360, 0xc0003e6fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e6f80 sp=0xc0003e6f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003e6fa8 sp=0xc0003e6f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003e6fe0 sp=0xc0003e6fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e6fe8 sp=0xc0003e6fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 61 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003e7708 sp=0xc0003e76e8 pc=0xa1674e
runtime.chanrecv(0xc0013a43c0, 0xc0003e77bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e7780 sp=0xc0003e7708 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003e77a8 sp=0xc0003e7780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003e77e0 sp=0xc0003e77a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e77e8 sp=0xc0003e77e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 62 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003e7f08 sp=0xc0003e7ee8 pc=0xa1674e
runtime.chanrecv(0xc0013a4420, 0xc0003e7fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003e7f80 sp=0xc0003e7f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003e7fa8 sp=0xc0003e7f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003e7fe0 sp=0xc0003e7fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003e7fe8 sp=0xc0003e7fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 63 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0003eb708 sp=0xc0003eb6e8 pc=0xa1674e
runtime.chanrecv(0xc0013a4480, 0xc0003eb7bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0003eb780 sp=0xc0003eb708 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0003eb7a8 sp=0xc0003eb780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0003eb7e0 sp=0xc0003eb7a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0003eb7e8 sp=0xc0003eb7e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 64 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c1f08 sp=0xc0000c1ee8 pc=0xa1674e
runtime.chanrecv(0xc0013a44e0, 0xc0000c1fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c1f80 sp=0xc0000c1f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c1fa8 sp=0xc0000c1f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c1fe0 sp=0xc0000c1fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c1fe8 sp=0xc0000c1fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 65 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c2708 sp=0xc0000c26e8 pc=0xa1674e
runtime.chanrecv(0xc0013a4540, 0xc0000c27bf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c2780 sp=0xc0000c2708 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c27a8 sp=0xc0000c2780 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c27e0 sp=0xc0000c27a8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c27e8 sp=0xc0000c27e0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 66 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xce fp=0xc0000c2f08 sp=0xc0000c2ee8 pc=0xa1674e
runtime.chanrecv(0xc0013a45a0, 0xc0000c2fbf, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc0000c2f80 sp=0xc0000c2f08 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc0000c2fa8 sp=0xc0000c2f80 pc=0x9e4d52
fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu.func1()
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:148 +0x34 fp=0xc0000c2fe0 sp=0xc0000c2fa8 pc=0x1116b94
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc0000c2fe8 sp=0xc0000c2fe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/driver/glfw.(*gLDriver).refreshSystrayMenu in goroutine 15
	fyne.io/fyne/v2@v2.4.1/internal/driver/glfw/driver_desktop.go:147 +0xee

goroutine 49 [select]:
runtime.gopark(0xc00005af68?, 0x2?, 0x45?, 0xfe?, 0xc00005af08?)
	runtime/proc.go:398 +0xce fp=0xc00005ada0 sp=0xc00005ad80 pc=0xa1674e
runtime.selectgo(0xc00005af68, 0xc00005af04, 0xc0013f2078?, 0x0, 0x18?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc00005aec0 sp=0xc00005ada0 pc=0xa25fe5
fyne.io/fyne/v2/internal/async.(*UnboundedFuncChan).processing(0xc0007fc000)
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:45 +0xd5 fp=0xc00005afc8 sp=0xc00005aec0 pc=0xe0e395
fyne.io/fyne/v2/internal/async.NewUnboundedFuncChan.func1()
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:22 +0x25 fp=0xc00005afe0 sp=0xc00005afc8 pc=0xe0e205
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00005afe8 sp=0xc00005afe0 pc=0xa45f41
created by fyne.io/fyne/v2/internal/async.NewUnboundedFuncChan in goroutine 53
	fyne.io/fyne/v2@v2.4.1/internal/async/chan_func.go:22 +0xe5

goroutine 82 [chan receive]:
runtime.gopark(0xc0017394a0?, 0x0?, 0x48?, 0xaf?, 0x1028ef3?)
	runtime/proc.go:398 +0xce fp=0xc00006af10 sp=0xc00006aef0 pc=0xa1674e
runtime.chanrecv(0xc00012dc20, 0xc00006afc8, 0x1)
	runtime/chan.go:583 +0x3cd fp=0xc00006af88 sp=0xc00006af10 pc=0x9e512d
runtime.chanrecv2(0x0?, 0x0?)
	runtime/chan.go:447 +0x12 fp=0xc00006afb0 sp=0xc00006af88 pc=0x9e4d52
fyne.io/fyne/v2/data/binding.queueItem.func1.1()
	fyne.io/fyne/v2@v2.4.1/data/binding/queue.go:18 +0x4b fp=0xc00006afe0 sp=0xc00006afb0 pc=0xe0facb
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00006afe8 sp=0xc00006afe0 pc=0xa45f41
created by fyne.io/fyne/v2/data/binding.queueItem.func1 in goroutine 53
	fyne.io/fyne/v2@v2.4.1/data/binding/queue.go:17 +0x46

goroutine 76 [IO wait]:
runtime.gopark(0x18?, 0xc001f60000?, 0x0?, 0x10?, 0xffffffffffffffff?)
	runtime/proc.go:398 +0xce fp=0xc000523ab8 sp=0xc000523a98 pc=0xa1674e
runtime.netpollblock(0xa95425?, 0x9e2906?, 0x0?)
	runtime/netpoll.go:564 +0xf7 fp=0xc000523af0 sp=0xc000523ab8 pc=0xa0fcb7
internal/poll.runtime_pollWait(0x2ae0c0d30, 0x72)
	runtime/netpoll.go:343 +0x85 fp=0xc000523b10 sp=0xc000523af0 pc=0xa40605
internal/poll.(*pollDesc).wait(0xc001c9f000?, 0xc001f60000?, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc000523b38 sp=0xc000523b10 pc=0xaafea7
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc001c9f000, {0xc001f60000, 0x1000, 0x1000})
	internal/poll/fd_unix.go:164 +0x27a fp=0xc000523bd0 sp=0xc000523b38 pc=0xab119a
net.(*netFD).Read(0xc001c9f000, {0xc001f60000?, 0xcf5020?, 0xc0013f4d00?})
	net/fd_posix.go:55 +0x25 fp=0xc000523c18 sp=0xc000523bd0 pc=0xb31505
net.(*conn).Read(0xc00005c778, {0xc001f60000?, 0x0?, 0xc001b37a00?})
	net/net.go:179 +0x45 fp=0xc000523c60 sp=0xc000523c18 pc=0xb3dd85
net.(*TCPConn).Read(0x4?, {0xc001f60000?, 0x9e451a?, 0x12?})
	<autogenerated>:1 +0x25 fp=0xc000523c90 sp=0xc000523c60 pc=0xb4db85
net/http.(*persistConn).Read(0xc0000a7440, {0xc001f60000?, 0xc001d31380?, 0xc000523d38?})
	net/http/transport.go:1954 +0x4a fp=0xc000523cf0 sp=0xc000523c90 pc=0xcfb2ea
bufio.(*Reader).fill(0xc00012c8a0)
	bufio/bufio.go:113 +0x103 fp=0xc000523d28 sp=0xc000523cf0 pc=0xaef303
bufio.(*Reader).Peek(0xc00012c8a0, 0x1)
	bufio/bufio.go:151 +0x53 fp=0xc000523d48 sp=0xc000523d28 pc=0xaef433
net/http.(*persistConn).readLoop(0xc0000a7440)
	net/http/transport.go:2118 +0x1b9 fp=0xc000523fc8 sp=0xc000523d48 pc=0xcfc0d9
net/http.(*Transport).dialConn.func5()
	net/http/transport.go:1776 +0x25 fp=0xc000523fe0 sp=0xc000523fc8 pc=0xcfa905
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000523fe8 sp=0xc000523fe0 pc=0xa45f41
created by net/http.(*Transport).dialConn in goroutine 74
	net/http/transport.go:1776 +0x169f

goroutine 77 [select]:
runtime.gopark(0xc000524f90?, 0x2?, 0xe0?, 0x4d?, 0xc000524f1c?)
	runtime/proc.go:398 +0xce fp=0xc000524db8 sp=0xc000524d98 pc=0xa1674e
runtime.selectgo(0xc000524f90, 0xc000524f18, 0xc001412740?, 0x0, 0xc0018e4b70?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc000524ed8 sp=0xc000524db8 pc=0xa25fe5
net/http.(*persistConn).writeLoop(0xc0000a7440)
	net/http/transport.go:2421 +0xe5 fp=0xc000524fc8 sp=0xc000524ed8 pc=0xcfdaa5
net/http.(*Transport).dialConn.func6()
	net/http/transport.go:1777 +0x25 fp=0xc000524fe0 sp=0xc000524fc8 pc=0xcfa8a5
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc000524fe8 sp=0xc000524fe0 pc=0xa45f41
created by net/http.(*Transport).dialConn in goroutine 74
	net/http/transport.go:1777 +0x16f1

goroutine 98 [chan send]:
runtime.gopark(0x8?, 0x9ebb85?, 0x9?, 0x0?, 0x11?)
	runtime/proc.go:398 +0xce fp=0xc00226eee8 sp=0xc00226eec8 pc=0xa1674e
runtime.chansend(0xc001d30120, 0xc00226efb8, 0x1, 0xc000098701?)
	runtime/chan.go:259 +0x3a5 fp=0xc00226ef58 sp=0xc00226eee8 pc=0x9e43c5
runtime.chansend1(0x4e84e0?, 0xc001731d10?)
	runtime/chan.go:145 +0x17 fp=0xc00226ef88 sp=0xc00226ef58 pc=0x9e4017
github.com/dweymouth/supersonic/ui/widgets.NewAlbumFilterButton.func1()
	github.com/dweymouth/supersonic/ui/widgets/albumfilterbutton.go:53 +0x7f fp=0xc00226efe0 sp=0xc00226ef88 pc=0x103d5ff
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc00226efe8 sp=0xc00226efe0 pc=0xa45f41
created by github.com/dweymouth/supersonic/ui/widgets.NewAlbumFilterButton in goroutine 71
	github.com/dweymouth/supersonic/ui/widgets/albumfilterbutton.go:47 +0x167

goroutine 149 [IO wait]:
runtime.gopark(0x1a?, 0xc00180e000?, 0x0?, 0x10?, 0xffffffffffffffff?)
	runtime/proc.go:398 +0xce fp=0xc001792ab8 sp=0xc001792a98 pc=0xa1674e
runtime.netpollblock(0xa95425?, 0x9e2906?, 0x0?)
	runtime/netpoll.go:564 +0xf7 fp=0xc001792af0 sp=0xc001792ab8 pc=0xa0fcb7
internal/poll.runtime_pollWait(0x2ae0c0b40, 0x72)
	runtime/netpoll.go:343 +0x85 fp=0xc001792b10 sp=0xc001792af0 pc=0xa40605
internal/poll.(*pollDesc).wait(0xc00172b680?, 0xc00180e000?, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc001792b38 sp=0xc001792b10 pc=0xaafea7
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00172b680, {0xc00180e000, 0x1000, 0x1000})
	internal/poll/fd_unix.go:164 +0x27a fp=0xc001792bd0 sp=0xc001792b38 pc=0xab119a
net.(*netFD).Read(0xc00172b680, {0xc00180e000?, 0xcf5020?, 0xc0013f5ba0?})
	net/fd_posix.go:55 +0x25 fp=0xc001792c18 sp=0xc001792bd0 pc=0xb31505
net.(*conn).Read(0xc00005c490, {0xc00180e000?, 0x0?, 0xc001b37520?})
	net/net.go:179 +0x45 fp=0xc001792c60 sp=0xc001792c18 pc=0xb3dd85
net.(*TCPConn).Read(0x4?, {0xc00180e000?, 0x9e451a?, 0x12?})
	<autogenerated>:1 +0x25 fp=0xc001792c90 sp=0xc001792c60 pc=0xb4db85
net/http.(*persistConn).Read(0xc001faf7a0, {0xc00180e000?, 0xc001d315c0?, 0xc001792d38?})
	net/http/transport.go:1954 +0x4a fp=0xc001792cf0 sp=0xc001792c90 pc=0xcfb2ea
bufio.(*Reader).fill(0xc0017386c0)
	bufio/bufio.go:113 +0x103 fp=0xc001792d28 sp=0xc001792cf0 pc=0xaef303
bufio.(*Reader).Peek(0xc0017386c0, 0x1)
	bufio/bufio.go:151 +0x53 fp=0xc001792d48 sp=0xc001792d28 pc=0xaef433
net/http.(*persistConn).readLoop(0xc001faf7a0)
	net/http/transport.go:2118 +0x1b9 fp=0xc001792fc8 sp=0xc001792d48 pc=0xcfc0d9
net/http.(*Transport).dialConn.func5()
	net/http/transport.go:1776 +0x25 fp=0xc001792fe0 sp=0xc001792fc8 pc=0xcfa905
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc001792fe8 sp=0xc001792fe0 pc=0xa45f41
created by net/http.(*Transport).dialConn in goroutine 103
	net/http/transport.go:1776 +0x169f

goroutine 150 [select]:
runtime.gopark(0xc001793f90?, 0x2?, 0xe0?, 0x3d?, 0xc001793f1c?)
	runtime/proc.go:398 +0xce fp=0xc001793db8 sp=0xc001793d98 pc=0xa1674e
runtime.selectgo(0xc001793f90, 0xc001793f18, 0xc001bb3ac0?, 0x0, 0xc0018e45a0?, 0x1)
	runtime/select.go:327 +0x725 fp=0xc001793ed8 sp=0xc001793db8 pc=0xa25fe5
net/http.(*persistConn).writeLoop(0xc001faf7a0)
	net/http/transport.go:2421 +0xe5 fp=0xc001793fc8 sp=0xc001793ed8 pc=0xcfdaa5
net/http.(*Transport).dialConn.func6()
	net/http/transport.go:1777 +0x25 fp=0xc001793fe0 sp=0xc001793fc8 pc=0xcfa8a5
runtime.goexit()
	runtime/asm_amd64.s:1650 +0x1 fp=0xc001793fe8 sp=0xc001793fe0 pc=0xa45f41
created by net/http.(*Transport).dialConn in goroutine 103
	net/http/transport.go:1777 +0x16f1

rax    0x0
rbx    0xc002059c50
rcx    0x0
rdx    0x2a4ec6440
rdi    0x5
rsi    0x2a4dfc9bc
rbp    0x6fcc595cba50
rsp    0x6fcc595cba30
r8     0x2a4ec6440
r9     0x0
r10    0x50
r11    0xa37fddfe6cd3c2df
r12    0x0
r13    0x18ddd80
r14    0x2ed3f1460
r15    0x190c3f8
rip    0x11397e3
rflags 0x10287
cs     0x2b
fs     0x0
gs     0x0

Are all those Fyne errors related and/or expected?

This is against gonic-0.15.2 (running on another FreeBSD box).

Thanks

@dweymouth
Copy link
Owner

The Fyne errors are expected and aren't a problem other than polluting the logs. It's because Fyne doesn't like when you use PNGs instead of SVGs as button icons (see #155).

Does the crashing on exit happen all the time or is it intermittent? I know it intermittently crashes on exit on all platforms, though not super often in my experience. It's some sort of timing bug in the shutdown of the various background threads. While I'd like to fix it, it's not causing any real problems (esp. after #277), so it has not been on my priority list to track down and fix.

@vext01
Copy link
Author

vext01 commented Dec 18, 2023

Hi,

Thanks for the fast response!

It crashes like this every time.

It'd be good to get it fixed because OpenBSD creates a core dump for the crashing process.

If you think it's a race, is there a sanitiser that could help?

Cheers

@dweymouth
Copy link
Owner

dweymouth commented Dec 18, 2023

The first thing to try I think is if you run the Fyne Demo and see if it crashes similarly on exit. If so, the issue is in the Fyne toolkit and would have to be reported there. If Fyne demo exits normally, I would try adding a time.Sleep(1 * time.Second) at the very end of main in Supersonic and see if that mitigates it (if so, it was because main was exiting before giving other goroutines a chance to finish up).

Edit: of course this wouldn't be a proper fix but would just give some insight into what's going wrong and how to implement a true fix

@vext01
Copy link
Author

vext01 commented Dec 19, 2023

The Fyne demo works fine:

$ go run fyne.io/fyne/v2/cmd/fyne_demo@latest 2>&1 | tee LOG
# fyne.io/fyne/v2/cmd/fyne_demo
x11_window.c:1047 (/home/edd/go/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20221017161538-93cebf72946b/glfw/src/x11_window.c:1047)(/tmp/go-link-541355508/000009.o:(getSelectionString)): warning: strcat() is almost always misused, please use strlcat()
init.c:305 (/home/edd/go/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20221017161538-93cebf72946b/glfw/src/init.c:305)(/tmp/go-link-541355508/000008.o:(_glfwInputError)): warning: strcpy() is almost always misused, please use strlcpy()
2023/12/19 10:14:02 Lifecycle: Started
2023/12/19 10:14:02 Lifecycle: Entered Foreground
2023/12/19 10:14:04 Lifecycle: Exited Foreground
2023/12/19 10:14:04 Lifecycle: Entered Foreground
2023/12/19 10:14:05 Lifecycle: Exited Foreground
2023/12/19 10:14:05 Lifecycle: Stopped

Adding the sleep you suggested and some prints:

diff --git a/main.go b/main.go
index 5ec9592..8087aa1 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,7 @@
 package main
 
 import (
+    "fmt"
 	"log"
 	"math"
 	"os"
@@ -74,10 +75,18 @@ func main() {
 			fyneApp.Quit()
 		}
 	})
+
+    fmt.Println("AAA")
 	fyneApp.Run()
+    fmt.Println("BBB")
 
 	log.Println("Running shutdown tasks...")
+    fmt.Println("CCC")
 	myApp.Shutdown()
+    fmt.Println("DDD")
+
+    time.Sleep(1 * time.Second)
+    fmt.Println("EEE")
 }
 
 func saveWindowSize(config *backend.Config, window fyne.Window) {

Only AAA prints, so fyneApp.Run() must be crashing?

(disclaimer, this is the most go I've ever written 😆 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants