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

Reply via email to