[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