reopen 574672
thanks

On Sun, Oct 16, 2011 at 01:43:39AM -0400, Eric Dorland wrote:
> Version: 2.0.18-1
> 
> My reading of the code it looks like this has been fixed. Please
> reopen if you disagree.
> 
> * Josh Triplett ([email protected]) wrote:
> > Package: gnupg-agent
> > Version: 2.0.14-1
> > Severity: normal
> > File: /usr/bin/gpg-agent
> > 
> > gpg-agent seems to wake up every few seconds, due to select timing out.
> > 
> > gpg-agent should not wake up until either it has something to do, or it
> > needs to time out a key from memory.  The former occurs when select says
> > it has data to read from its socket, and the latter should sleep until
> > the target time rather than waking up every couple of seconds.

strace shows that this bug still exists.  gpg-agent 2.0.18-1 still wakes up
every few seconds, when select times out:

$ strace -tt -p $(pidof gpg-agent)
Process 8803 attached - interrupt to quit
22:55:13.781061 select(6, [3 5], [], [], {1, 219052}) = 0 (Timeout)
22:55:15.001811 rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], NULL, 8) = 0
22:55:15.002139 rt_sigaction(SIGHUP, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:15.002403 rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:15.002651 rt_sigaction(SIGUSR1, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:15.002856 rt_sigaction(SIGUSR2, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:15.003040 rt_sigaction(SIGTERM, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:15.003234 rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0
22:55:15.003415 kill(8764, SIG_0)       = 0
22:55:15.003541 rt_sigprocmask(SIG_UNBLOCK, [], NULL, 8) = 0
22:55:15.003656 rt_sigprocmask(SIG_UNBLOCK, [HUP INT USR1 USR2 TERM], NULL, 8) 
= 0
22:55:15.003798 select(6, [5], NULL, NULL, {0, 0}) = 0 (Timeout)
22:55:15.003923 rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], [], 8) = 0
22:55:15.004074 rt_sigpending([])       = 0
22:55:15.004199 read(3, 0x7f6b35a791f0, 128) = -1 EAGAIN (Resource temporarily 
unavailable)
22:55:15.004348 rt_sigaction(SIGHUP, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:15.004561 rt_sigaction(SIGINT, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:15.004748 rt_sigaction(SIGUSR1, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:15.004923 rt_sigaction(SIGUSR2, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:15.005104 rt_sigaction(SIGTERM, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:15.005285 rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0
22:55:15.005421 select(6, [3 5], [], [], {2, 995964}) = 0 (Timeout)
22:55:18.004669 rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], NULL, 8) = 0
22:55:18.004960 rt_sigaction(SIGHUP, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:18.005197 rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:18.005453 rt_sigaction(SIGUSR1, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:18.005699 rt_sigaction(SIGUSR2, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:18.005877 rt_sigaction(SIGTERM, {SIG_IGN, [], SA_RESTORER, 
0x7f6b32d84480}, NULL, 8) = 0
22:55:18.006080 rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0
22:55:18.006254 kill(8764, SIG_0)       = 0
22:55:18.006419 rt_sigprocmask(SIG_UNBLOCK, [], NULL, 8) = 0
22:55:18.006538 rt_sigprocmask(SIG_UNBLOCK, [HUP INT USR1 USR2 TERM], NULL, 8) 
= 0
22:55:18.006688 select(6, [5], NULL, NULL, {0, 0}) = 0 (Timeout)
22:55:18.006851 rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], [], 8) = 0
22:55:18.007006 rt_sigpending([])       = 0
22:55:18.007145 read(3, 0x7f6b35a791f0, 128) = -1 EAGAIN (Resource temporarily 
unavailable)
22:55:18.007269 rt_sigaction(SIGHUP, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:18.007435 rt_sigaction(SIGINT, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:18.007621 rt_sigaction(SIGUSR1, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:18.007801 rt_sigaction(SIGUSR2, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:18.007981 rt_sigaction(SIGTERM, {0x7f6b334f7e80, ~[RTMIN RT_1], 
SA_RESTORER, 0x7f6b32d84480}, {SIG_IGN, [], SA_RESTORER, 0x7f6b32d84480}, 8) = 0
22:55:18.008154 rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0
22:55:18.008289 select(6, [3 5], [], [], {2, 993029}^C <unfinished ...>
Process 8803 detached

Looks like it calls select with a timeout of about 3 seconds, along with a huge 
pile of signal manipulation..

- Josh Triplett



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to