waiting for lock (held by $pid)
Noticed this while attempting to commit changes:
$ g cman
error: gpg failed to sign the data:
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: keydb_search failed: Operation timed out
gpg: skipped "1CBBEBFE0CDC1C06DB324A7CCE439AFEC33D9E7F": Operation timed out
[GNUPG:] INV_SGNR 0 1CBBEBFE0CDC1C06DB324A7CCE439AFEC33D9E7F
[GNUPG:] FAILURE sign 134250628
gpg: signing failed: Operation timed out
fatal: failed to write commit object
Check that there's no useful debugging output:
$ gpg --list-keys --verbose
gpg: enabled compatibility flags:
gpg: using pgp trust model
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: Note: database_open 134217901 waiting for lock (held by 4466) ...
gpg: keydb_search_first failed: Operation timed out
Check that the mentioned process ID isn't around:
$ pstree -p 4466
Enumerate the lock files:
$ find ~/.gnupg -name '*.lock'
/Users/lukecarrier/.gnupg/public-keys.d/pubring.db.lock
Delete them:
find ~/.gnupg -name '*.lock' -delete
Try again:
$ gpg --list-keys --verbose
gpg: enabled compatibility flags:
gpg: using pgp trust model
[keyboxd]
---------
pub ed25519 2024-02-17 [SC] [expires: 2025-02-16]
1CBBEBFE0CDC1C06DB324A7CCE439AFEC33D9E7F
uid [ultimate] Luke Carrier <luke@carrier.family>
sub cv25519 2024-02-17 [E] [expires: 2025-02-16]