I think the bug is in the go-udev package (upstream). The Monitor() function returns a 'quit' channel that the caller uses to stop processing. Monitor() runs a backgroud goroutine that monitors/reads from netlink socket and stops if quit channel is written to. I think the problem is that the quit channel is a buffered/non-blocking channel - writing to it and calling Close() on the netlink object right afterwards (which we do when stopping snapd) means we might be closing the socket and disposing the object when the background routine is reading netlink events.
The fix should be simple, I'll look at fixing it in our source tree (conviniently this dependency is forked under our project) and will carry the fix upstream. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1824162 Title: /usr/lib/snapd/snapd:11:runtime:runtime:runtime:runtime:runtime To manage notifications about this bug go to: https://bugs.launchpad.net/snapd/+bug/1824162/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs