Thanks Pete! It's sort of a catch-22: if I shut down the dbus connection
first, a new instance can be started while the old instance is still in
the process of shutting down. And if I destroy the db instance first,
requests can still be dispatched that now no longer have a valid target.

The problem with the db lock is that it's buried inside leveldb and,
technically, we don't even know where that lock file is or how it works.
It's a leveldb implementation detail. I'll have a look at adding a
separate lock that we can maintain around the leveldb start-up/shut-down
code.

The problem really is DBus here: there is no way to say to DBus "I'm in
the process of shutting down, hold any requests for me until I tell you
that I'm done shutting down and then send those requests to a new
service instance."

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1511553

Title:
  Crash in queueRequest

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1511553/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to