[Bug 1904416] Re: gpg-agent 2.x poor performance / futex errors
Paul White
1904416 at bugs.launchpad.net
Sat Jan 20 15:07:40 UTC 2024
Thank you for taking the time to report this bug and helping to make
Ubuntu better. We are sorry that we do not always have the capacity to
review all reported bugs in a timely manner.
Ubuntu 18.04 (bionic) reached end-of-standard-support on May 31, 2023.
Ubuntu 16.04 (xenial) reached end-of-standard-support on April 29, 2021.
I'm setting the status of this bug to 'Incomplete' as it's not seen any
activity for some time. If this is still an issue while using a
currently maintained release of Ubuntu then please let us know which
one(s) otherwise this bug report can be left to expire in approximately
60 days time.
** Tags added: bionic xenial
** Changed in: ubuntu
Status: New => Incomplete
** Changed in: gnupg2 (Ubuntu)
Status: New => Incomplete
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gnupg2 in Ubuntu.
https://bugs.launchpad.net/bugs/1904416
Title:
gpg-agent 2.x poor performance / futex errors
Status in Ubuntu:
Incomplete
Status in gnupg2 package in Ubuntu:
Incomplete
Bug description:
Hello,
after upgrading from Ubuntu 16.04 to Ubuntu 18.04 we've noticed the
issues which came along with the gpg v2.x.
The gpg-agent produces millions of futex syscall errors during a very
short time (a second or two) when it's being loaded either by the
SaltStack's salt-master decrypting the pillars (our main use case) or
when it is being directly tested with "parallel" tool from moreutils
package.
```
$ sudo strace -f -p <pidof gpg-agent>
...
...Ctrl+C just after couple of seconds while "gpg -d" commands are running in parallel (see below for details)
...
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
96.35 2800.145231 305 9194103 2009552 futex
3.63 105.404136 373774 282 pselect6
0.01 0.431338 102 4246 read
0.00 0.104701 12 8490 write
0.00 0.029085 103 283 accept
0.00 0.016549 58 284 madvise
0.00 0.012201 22 567 close
0.00 0.010979 8 1410 getpid
0.00 0.010405 12 849 access
0.00 0.006341 22 284 284 wait4
0.00 0.004350 15 283 openat
0.00 0.003764 13 283 clone
0.00 0.002668 9 283 getsockopt
0.00 0.002568 9 283 fstat
0.00 0.002564 9 283 set_robust_list
0.00 0.001941 7 283 lseek
------ ----------- ----------- --------- --------- ----------------
100.00 2906.188821 9212496 2009836 total
```
I'll describe the issue and steps to reproduce it.
First, prepare the "enc" file:
```
cat /usr/share/doc/base-files/README | gpg -ear "some-4K-RSA-publick-key" > enc
```
Run parallel decryptions using "time" to measure it:
```
time parallel -j 30 sh -c "cat enc | gpg --no-tty -d -q -o /dev/null" -- $(seq 1 3000)
```
Running "gpg -d" (GPG v2.x, with the gpg-agent) in parallel as described above took:
- 1minute 18seconds on a big HW; (48 cores, *gpg-agent 2.2.4*-1ubuntu1.2)
- 32 seconds on my laptop; (4 cores, *gpg-agent 2.2.19*-3ubuntu2)
Running the same commands but with GPG v1.4.20 (no agent):
- 9 seconds on a big HW: (40 cores, *gnupg 1.4.20*-1ubuntu3.3)
- 21 seconds on a VM; (1 core, *gnupg 1.4.20*-1ubuntu3.3)
Note: in order to prevent "command 'PKDECRYPT' failed: Cannot allocate
memory <gcrypt>" error, the gpg-agent is running either with "--auto-
expand-secmem 0x30000" flag or with "auto-expand-secmem" in
~/.gnupg/gpg-agent.conf file.
Since our use case is to have SaltStack's salt-master decrypt many
pillars for hundreds of servers, the Ubuntu 16.04 => 18.04 upgrade
severely degrades the SaltStack performance making it almost unusable,
i.e. it becomes 10 times slower, requires us figuring workarounds such
as increasing "gather_job_timeout" or probably even rolling back to
gpg v1.x -- not sure if Ubuntu Bionic fully supports that and won't
break though (we haven't tested the gpg 2.x => 1.x downgrade scenario
yet -- any insights are highly appreciated!).
Any suggestions?
Kind regards,
Andrey Arapov
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/1904416/+subscriptions
More information about the foundations-bugs
mailing list