Hi,

I've been poking at this issue now for some time, and haven't been able to find
any info regarding this in the man pages or online. 

I'm running Regolith (basically Ubuntu with i3), and normally my gpg key is
unlocked by me logging into the graphical session, i.e. using the key to
decrypt something does not ask for a key. What I noticed though, is that if
I want to decrypt multiple things in parallel, first the decryption process
seems to slow down faster than linear, and then some (not all) decrypt tasks
start prompting me for a password to the key. I've done a couple of
experiments, and my feeling is that even though the decrypt task are run in
parallel, something is done serially, but I'm not sure what and where exactly
and that there is a timeout on waiting for this. My best bet, is that the
password for the key needs to be fetched from the gnome keyring (? if it's
called that) and that gpg-agent times out waiting for this and just requests it
from the user.

I made a short script in python (attached) demonstrating this. On my machine,
setting WORKERNUM=7 is enough to trigger the issue.

Could somebody point me to a resources explaining what is happening here? And
more importantly, is there some setting I can change to avoid the occasional
password prompts?

Thanks,
Bence
import subprocess
import multiprocessing as mp
import time


the_queue = mp.Queue()
WORKERNUM = 7


def worker_main(queue):
    while True:
        msg = queue.get(True)
        print(time.time(), msg)
        out = subprocess.run(["gpg", "--decrypt", "test.gpg"], capture_output=True)
        print(msg, time.time(), out.stdout)


the_pool = mp.Pool(WORKERNUM, worker_main, (the_queue,))

counter = 0
while True:
    counter += 1
    the_queue.put(counter)
    print(the_queue.qsize())
    while the_queue.qsize() > 10:
        time.sleep(0.1)
_______________________________________________
Gnupg-users mailing list
Gnupg-users@gnupg.org
https://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to