Closed nickkhyl closed 3 months ago
I'm experiencing sporadic nil pointer dereferences when clicking the tray icon multiple times or while the popup menu is already displayed.
panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x70 pc=0xbda191] goroutine 1 [running, locked to thread]: github.com/tailscale/walk.(*menuItemLayout).layout(0xffffffffe0012327?, 0xc7593ff288?, 0x2?) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/menuownerdraw.go:362 +0x11 github.com/tailscale/walk.(*ownerDrawnMenuItemInfo).onDraw(0xc000177960, {0x1284100, 0xc0002f02c8}, 0xc7593ff260) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/menuownerdraw.go:564 +0x85 github.com/tailscale/walk.(*WindowBase).WndProc(0xc0002f02c8, 0x41580, 0x2b, 0x0, 0xc7593ff260) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/window.go:2639 +0x295 github.com/tailscale/walk.(*notifyIconWindow).WndProc(0xc0002f02c8, 0x41580, 0x2b, 0x0, 0xc7593ff260) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/notifyicon.go:74 +0x12d github.com/tailscale/walk.defaultWndProc(0x41580, 0x2b, 0x0, 0xc7593ff260) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/window.go:2275 +0x28a syscall.SyscallN(0x0?, {0xc000035240?, 0x0?, 0x179be20?}) runtime/syscall_windows.go:544 +0x107 syscall.Syscall6(0x0?, 0x0?, 0xc0000352d0?, 0xb357ce?, 0xc0000352d8?, 0xc0000352e8?, 0xc000035310?, 0x0?) runtime/syscall_windows.go:488 +0x4a github.com/tailscale/win.TrackPopupMenuEx(0xd110e, 0x4100, 0xa39, 0x846, 0x41580, 0x6d24d3874ae60f0e?) github.com/tailscale/win@v0.0.0-20240403170916-6580b55d49ca/user32.go:3476 +0x85 github.com/tailscale/walk.(*NotifyIcon).doContextMenu(0xc00003a780, 0x41580, 0xa39, 0x846) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/notifyicon.go:167 +0x85 github.com/tailscale/walk.(*NotifyIcon).ShowContextMenu(0xc00003a780, 0xa39, 0x846) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/notifyicon.go:152 +0x9c tailscale.io/win/ui.(*app).notificationIconClicked(0xc0002e7188, 0xa39, 0x846, 0x0?) tailscale.io/win/ui/ui.go:1669 +0x31e github.com/tailscale/walk.(*MouseEventPublisher).Publish(0xc00003a7c8, 0xa39, 0x846, 0x1) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/mouseevent.go:69 +0x77 github.com/tailscale/walk.(*NotifyIcon).wndProc(0xc00033fd48?, 0x0?, 0x0?, 0xc000035508?) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/notifyicon.go:107 +0xa8 github.com/tailscale/walk.(*notifyIconWindow).WndProc(0x1083500?, 0x41580, 0x41580?, 0x8460a39, 0x202) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/notifyicon.go:61 +0x77 github.com/tailscale/walk.defaultWndProc(0x41580, 0x400, 0x8460a39, 0x202) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/window.go:2275 +0x28a syscall.SyscallN(0x1?, {0xc000035c10?, 0x179be20?, 0x11b87c0?}) runtime/syscall_windows.go:544 +0x107 syscall.Syscall6(0x0?, 0xc000035ca0?, 0xb3306b?, 0xc0000f5500?, 0xc000035ca0?, 0xba9ce8?, 0x1083500?, 0xc0000f6e40?) runtime/syscall_windows.go:488 +0x4a github.com/tailscale/win.GetMessage(0x0?, 0x0, 0x0, 0x0) github.com/tailscale/win@v0.0.0-20240403170916-6580b55d49ca/user32.go:2669 +0x6b github.com/tailscale/walk.(*Application).runMainMessageLoop(0x179b220) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/application.go:415 +0x8a github.com/tailscale/walk.(*Application).Run(0x179b220) github.com/tailscale/walk@v0.0.0-20240411225155-0fe267360a54/application.go:395 +0x2c tailscale.io/win/ui.(*app).Run(0xc0002e7188) tailscale.io/win/ui/ui.go:1592 +0xe5 tailscale.io/win/ui.runUI({0xc00028a400, 0x40}) tailscale.io/win/ui/ui.go:1583 +0x305 tailscale.io/win/ui.RunUI({0xc00028a400?, 0xc00028a3c0?}) tailscale.io/win/ui/ui.go:1533 +0x18 tailscale.io/win/ui.Main() tailscale.io/win/ui/main.go:92 +0x82a main.main() tailscale.io/win/gui/main.go:13 +0xf
I'm experiencing sporadic nil pointer dereferences when clicking the tray icon multiple times or while the popup menu is already displayed.