agl / pond

Pond
BSD 3-Clause "New" or "Revised" License
912 stars 110 forks source link

gui: panic: no such widget: contactsVbox-4 #96

Closed christophershirk closed 10 years ago

christophershirk commented 10 years ago

go version go1.2.1 linux/amd64 Pond version: commit 261faee2e7cc2521048d564dfb162dba45abab44

Crash output:

goroutine 1 [running]:
runtime.panic(0x762fa0, 0xc2101af840)
        /home/foo/go/src/pkg/runtime/panic.c:266 +0xb6
main.(*GTKUI).getWidget(0xc210065280, 0xc210142c00, 0xe, 0xc210142c00, 0xe)
        /home/foo/gopkg/src/github.com/agl/pond/client/gtk.go:522 +0xda
main.(*GTKUI).handle(0xc210065280, 0x828d60, 0xc2101630c0)
        /home/foo/gopkg/src/github.com/agl/pond/client/gtk.go:589 +0x22b0
main.(*GTKUI).onAction(0xc210065280)
        /home/foo/gopkg/src/github.com/agl/pond/client/gtk.go:98 +0xfe
main.func·018(0x1, 0x0)
        /home/foo/gopkg/src/github.com/agl/pond/client/gtk.go:59 +0x29
reflect.Value.call(0x7ac4c0, 0xc21000a790, 0x130, 0x8bb290, 0x4, ...)
        /home/foo/go/src/pkg/reflect/value.go:474 +0xe0b
reflect.Value.Call(0x7ac4c0, 0xc21000a790, 0x130, 0xc210163100, 0x1, ...)
        /home/foo/go/src/pkg/reflect/value.go:345 +0x9d
github.com/agl/go-gtk/glib._go_glib_sourcefunc(0x1efdca0)
        /home/foo/gopkg/src/github.com/agl/go-gtk/glib/glib.go:886 +0x23a
github.com/agl/go-gtk/gtk._Cfunc_gtk_main(0x45d1ba)
        github.com/agl/go-gtk/gtk/_obj/_cgo_defun.c:4246 +0x31
github.com/agl/go-gtk/gtk.Main()
        /home/foo/gopkg/src/github.com/agl/go-gtk/gtk/gtk.go:881 +0x1a
main.(*GTKUI).Run(0xc210065280)
        /home/foo/gopkg/src/github.com/agl/pond/client/gtk.go:79 +0x1a
main.main()
        /home/foo/gopkg/src/github.com/agl/pond/client/main_linux.go:71 +0x81f

goroutine 3 [syscall]:
os/signal.loop()
        /home/foo/go/src/pkg/os/signal/signal_unix.go:21 +0x1e
created by os/signal.init·1
        /home/foo/go/src/pkg/os/signal/signal_unix.go:27 +0x31

goroutine 4 [syscall]:
runtime.goexit()
        /home/foo/go/src/pkg/runtime/proc.c:1394

goroutine 6 [select]:
main.(*guiClient).nextEvent(0xc21005f280, 0x0, 0x0, 0x0, 0x0)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:99 +0x619
main.(*guiClient).showContact(0xc21005f280, 0xb767cf22b5cb6664, 0x8b9370, 0x0)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:2101 +0x1287
main.(*guiClient).newContactManual(0xc21005f280, 0xc2101d68c0, 0x7f78343d5000, 0xf, 0x47d0b9, ...)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:2456 +0x1aa1
main.func·037(0xc2101d68c0, 0xc210077000, 0x7, 0xc2101caea0, 0x828660)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:2298 +0x47
main.(*guiClient).newContactUI(0xc21005f280, 0xc2101d68c0, 0x8e4690, 0xa)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:2310 +0x1b3c
main.(*guiClient).mainUI(0xc21005f280)
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:665 +0x2c77
main.(*client).loadUI(0xc21005f280, 0xc21001e8c0, 0xc21005f280)
        /home/foo/gopkg/src/github.com/agl/pond/client/client.go:814 +0x973
created by main.(*guiClient).Start
        /home/foo/gopkg/src/github.com/agl/pond/client/gui.go:3562 +0x35

goroutine 7 [chan receive]:
github.com/agl/pond/client/disk.(*StateFile).StartWriter(0xc21009c000, 0xc2101824e0, 0xc210182540)
        /home/foo/gopkg/src/github.com/agl/pond/client/disk/disk.go:268 +0x3e
created by main.(*client).loadUI
        /home/foo/gopkg/src/github.com/agl/pond/client/client.go:798 +0x89e

goroutine 8 [select]:
main.(*client).transact(0xc21005f280)
        /home/foo/gopkg/src/github.com/agl/pond/client/network.go:878 +0x1304
created by main.(*client).loadUI
        /home/foo/gopkg/src/github.com/agl/pond/client/client.go:799 +0x8b8
agl commented 10 years ago

Do you recall what action preceded the crash?

christophershirk commented 10 years ago

Unfortunately I don't recall, nor have I been able to reproduce the crash. At the time I was having difficulty getting a remote user to successfully exchange keys, so I was doing a lot of contact adding, removing, and re-adding of the same names. At one point there was a queued outgoing msg during this process, as well as a draft, but I don't remember the state of things when the pond client called panic.

ebfe commented 10 years ago

This panic can be triggered by having contact A selected in the gui while a transmission to A happens and A has revoked us.

Apr  1 22:58:21: Starting fetch because of timer
Apr  1 22:58:21: Starting message transmission to pondserver://ZGL2WALCGXCKYBIHTWL5Q3TPCOEHSQB2XON5JHA2KHM5PJ3C7AFA@127.0.0.1:16333
Apr  1 22:58:21: Error from server pondserver://ZGL2WALCGXCKYBIHTWL5Q3TPCOEHSQB2XON5JHA2KHM5PJ3C7AFA@127.0.0.1:16333: error from server: GENERATION_REVOKED
Apr  1 22:58:21: Next network transaction in 5s seconds
Apr  1 22:58:21: Revoked by A
panic: no such widget: contactsVbox-16

goroutine 16 [running]:
runtime.panic(0x7b6100, 0xc2087feff0)
        /.../src/go/src/pkg/runtime/panic.c:279 +0xf5
main.(*GTKUI).getWidget(0xc208052200, 0xc2080fcd10, 0xf, 0x0, 0x0)
        /.../go/src/github.com/agl/pond/client/gtk.go:523 +0xed
main.(*GTKUI).handle(0xc208052200, 0x8930e0, 0xc208821740)
        /.../go/src/github.com/agl/pond/client/gtk.go:590 +0x23e0
main.(*GTKUI).onAction(0xc208052200)
        /.../go/src/github.com/agl/pond/client/gtk.go:99 +0x11b
main.func·018(0x1, 0x7f4bf3b4fa00)
        /.../go/src/github.com/agl/pond/client/gtk.go:60 +0x29
reflect.Value.call(0x80e6c0, 0xc2080008f0, 0x0, 0x130, 0x92b530, ...)
        /.../src/go/src/pkg/reflect/value.go:563 +0x1242
reflect.Value.Call(0x80e6c0, 0xc2080008f0, 0x0, 0x130, 0xc208821780, ...)
        /.../src/go/src/pkg/reflect/value.go:411 +0xd7
github.com/agl/go-gtk/glib._go_glib_sourcefunc(0x2481200)
        /.../go/src/github.com/agl/go-gtk/glib/glib.go:886 +0x28a
github.com/agl/go-gtk/gtk._Cfunc_gtk_main(0x4608aa)
        /tmp/go-build770310214/github.com/agl/go-gtk/gtk/_obj/_cgo_defun.c:4248 +0x31
github.com/agl/go-gtk/gtk.Main()
        /.../go/src/github.com/agl/go-gtk/gtk/gtk.go:881 +0x1a
main.(*GTKUI).Run(0xc208052200)
        /.../go/src/github.com/agl/pond/client/gtk.go:80 +0x1a
main.main()
        /.../go/src/github.com/agl/pond/client/main_linux.go:71 +0x844
agl commented 10 years ago

Thanks for that. I see the (stupid) bug. Will fix tomorrow.