[pkg-gnupg-maint] Bug#841143: Bug#841143: False assumptions about nPth (was: Bug#841143: Suspected race in gpg1 to gpg2 conversion or agent startup)
Ian Jackson
ijackson at chiark.greenend.org.uk
Wed Jan 18 10:56:56 UTC 2017
Daniel Kahn Gillmor writes ("Re: [pkg-gnupg-maint] Bug#841143: False assumptions about nPth (was: Bug#841143: Suspected race in gpg1 to gpg2 conversion or agent startup)"):
> You're just talking about adding this one test, right?
That's my understanding.
> It seems to me like this shouldn't be necessary, since i'd have thought
> the child channel (chan_9 in your example) receiving eof would make the
> main thread wake back up.
AIUI this is supposed to happen, indeed. So the timer tick is hiding
the race, by having gpg-agent wake up occasionally anyway and become
unstuck.
> can you explain why that wouldn't be the case? is there some way to
> cause the main thread to trigger a loop when the child channel closes?
There's interrupt_main_thread_loop. But it is not called. I think it
should be called when active_connections becomes zero.
That's what my patch 4/4 does, and that patch fixes most of the
problem for me.
There is a remaining race with much lower probability. I think It
happens when an incoming connection arrives just as gpg-agent is
finally deciding to actually exit. The symptoms are that some gpg
invocation complains about getting EOF from the agent.
Thanks,
Ian.
--
Ian Jackson <ijackson at chiark.greenend.org.uk> These opinions are my own.
If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.
More information about the pkg-gnupg-maint
mailing list