[pkg-gnupg-maint] Bug#800032: pinentry-gnome3: Pinentry hangs for ~30s before asking for passphrase when invoked by Enigmail

Simon McVittie smcv at debian.org
Mon Oct 17 20:01:12 UTC 2016


On Mon, 17 Oct 2016 at 12:35:21 -0400, Daniel Kahn Gillmor wrote:
> On Mon 2016-10-17 09:27:14 -0400, Ondřej Kuzník wrote:
> > For all of the above I'd say yes, maybe apart from the query,
> > dbus-monitor doesn't say anything even though I can see dbus-daemon
> > starting new processes. It might be that I'm not passing it the options
> > to actually show that, do you know how to get it to display them?

Which dbus-daemon? In a correct configuration with a single login
session, you can usually have up to three:

* The system bus: runs as uid messagebus, is a system service like
  NetworkManager or logind, is how you communicate with such things
  (look for uid messagebus, or /proc/*/cmdline mentioning --system)

* The session bus: runs as your own uid, is part of your own
  personal environment like gnome-settings-daemon, gvfs or gpg-agent
  (look for /proc/*/cmdline mentioning --session)

* The accessibility bus: runs as your own uid, is a weird accessibility
  thing, 1 per X11 DISPLAY, every accessibility-enabled GUI talks to it
  (look for /proc/*/cmdline mentioning
  --config-file=/usr/share/defaults/at-spi2/accessibility.conf)

Confusingly, at-spi-bus-launcher is a session bus service (like gvfs or
gnome-keyring or whatever), and at-spi-bus-launcher is responsible
for starting the accessibility bus; so it's tied up with two separate
buses.

If you use systemd as pid 1, systemd-cgls is a nice way to get an overview
of how your processes relate to each other, which isn't fooled by the
"double-fork to daemonize" idiom.

All of the dbus-monitor commands below can be stopped by Ctrl+C:

To monitor the session bus: dbus-monitor --session

To monitor the system bus: sudo dbus-monitor --system (Debian >= stretch)

To monitor the accessibility bus:
* dbus-send --session --dest=org.a11y.Bus --print-reply /org/a11y/bus org.a11y.Bus.GetAddress
* it should promptly report something like
  string "unix:abstract=/tmp/dbus-1111111111,guid=22222222222222222222222222222222"
* copy/paste it into a command like
  dbus-monitor --address unix:abstract=/tmp/dbus-1111111111,guid=22222222222222222222222222222222
* watch in despair as vast amounts of accessibility spam goes past,
  reporting every mouse movement, keypress, etc.
* wonder why the authors of AT-SPI thought D-Bus was the right hammer for
  this particular nail

> > Hmm, for some reason I have two dbus-daemons running and the one started
> > by ck-launch-session is the one where pinentry is having problems.

What is in their argv? (/proc/*/cmdline)

Is ck-launch-session something to do with ConsoleKit? If so, it's probably
a bad idea at this point.

Is there anything interesting in syslog (or equivalently the systemd
Journal)? Recent dbus versions log a lot more there than they used to.

I hope something here has pointed you in an informative direction.

Regards,
    S



More information about the pkg-gnupg-maint mailing list