Repository navigation
test(keychain): reproduce GNOME Keyring crashes under concurrent access - #1
Draft
ilopezluna wants to merge 1 commit into
Draft
ilopezluna wants to merge 1 commit into
ilopezluna wants to merge 1 commit into
Conversation
Signed-off-by: Ignacio López Luna <ignasi.lopez.luna@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reproduce the GNOME Keyring crash reported in docker/sbx-releases#663 using concurrent
Save → Get → Deleteoperations against the checked-out keychain store. This is a manual diagnostic tool for evaluating docker#668 and docker#648, not a fix or an automatically scheduled regression test.Run from the repository root with Docker and Make:
The disposable Ubuntu 24.04 container has its own session bus and passwordless keyring, uses synthetic credentials, and runs without networking or host mounts. It prints package versions, completed cycles, the keyring exit status and daemon logs. A five-minute timeout bounds the run. A reproduced crash returns nonzero; a successful run does not establish that the race is fixed.
Evidence and validation
store v0.4.0: eight concurrent workers crashed GNOME Keyring after 534 and 3,086 completed cycles. A sequential control completed 4,000 cycles.d1a970618263e4690e5ed39f44150a9a7a847274: crash after 488 completed cycles,probe_exit=1 keyring_exit=133. Sequential control completed 4,000 cycles successfully.gnome-keyring 46.1-2ubuntu0.2, GLib2.80.0-6ubuntu3.9.go vet, golangci-lint v2.14.0, formatting, shell syntax and host-execution guard checked. The final runtime-directory initialization change was reviewed after the live runs.Crash signature:
The client receives
failed to open secretservice session: Message recipient disconnected from message bus without replying, matching the Compose E2E failure. That job ran on AMD64 and lacks keyring crash logs, so its exact crash mechanism remains unconfirmed. PR docker#668 has not been tested with this reproducer.This draft targets a snapshot of upstream main in this fork (
codex/keyring-reproducer-base) so the diff contains only the reproducer and the fork's main branch remains unchanged.AI assistance: Codex performed the investigation, implemented the reproducer, ran the validation, and drafted this description at the fork owner's request.