Page MenuHome GnuPG

gpg-agent does not anymore restart a killed scdaemon
Closed, ResolvedPublic

Description

In case scdaemon is killed or crashed, gpg-agent does not restart scdaemon but attempts to send commands and waits indefinitely for responses. That used to work. Reproducer is obvious. Not tested with 2.2.

Details

Version
2.3.0 master

Revisions and Commits

Event Timeline

Does not happen in 2.2. Additional requirement to test this bug in master: Another connection to the scdaemon must be open. For example running scute or, easier, call "gpg --card-edit" and keep it open.

That's my badness. In wait_child_thread, assuan_release may cause thread context switch to agent_reset_scd which accesses scd_local_list; This access should be serialized.
And... in start_scd, calling unlock_scd should be after unlocking start_scd_lock.

gniibe changed the task status from Open to Testing.Mar 6 2019, 3:05 AM
gniibe claimed this task.

I did lot of tests in the last weeks while working on gpg-card.