fix: comprehensive bug fixes and documentation updates — round 17#258
Merged
SimplicityGuy merged 2 commits intomainfrom Apr 2, 2026
Merged
fix: comprehensive bug fixes and documentation updates — round 17#258SimplicityGuy merged 2 commits intomainfrom
SimplicityGuy merged 2 commits intomainfrom
Conversation
Bug fixes (11 issues): - Fix extractor-musicbrainz health port collision in metrics collector (8011→8000) - Add missing password-changed revocation check to require_admin dependency - Fix OAuth verify flow: use get+delete instead of getdel to allow retry on exchange failure - Move brainzgraphinator message count increment after successful ack - Fix AsyncPostgreSQLPool.initialize() TOCTOU race with dedicated init lock - Fix lock scope violation in Python state_marker.complete_processing() - Clear downloads_by_file in Rust start_download() to prevent counter drift - Fix queue names in test-database-resilience.sh (add discogs- source segment) - Fix monolithic extractor Docker service name in resilience test script - Expand check_queues.py to monitor all consumer queues, not just graphinator Documentation updates (19 files): - Fix MusicBrainz exchange count from 3→4 (add release-groups) across all docs - Replace monolithic 'extractor' references with extractor-discogs/extractor-musicbrainz - Complete health endpoint lists (add brainzgraphinator, brainztableinator, insights) - Fix line length from 88→150 chars in development.md and contributing.md - Update coverage source list in testing-guide.md - Add musicbrainz schema to PostgreSQL maintenance procedures - Add missing services to dockerfile-standards.md port/requirements sections - Update architecture diagrams to show 8 total exchanges Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
… double-check - Add test_password_changed_revokes_admin_token: verifies require_admin rejects tokens issued before a password change (covers lines 108-113 in dependencies.py) - Add test_password_changed_allows_newer_admin_token: verifies tokens issued after password change are allowed through - Add test_do_initialize_double_check_skips_when_already_initialized: exercises _do_initialize() double-check locking path in AsyncPostgreSQLPool Codecov patch coverage: dependencies.py 57% → 100%, postgres_resilient.py 87% → 99% Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Contributor
Contributor
Contributor
Contributor
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.
Summary
Bug Fixes
Critical
api/metrics_collector.py:extractor-musicbrainzhealth port was 8011 (brainzgraphinator's port) instead of 8000 — dashboard showed wrong health dataapi/dependencies.py:require_adminwas missing password-changed revocation check — admin tokens survived password resetsapi/api.py: OAuthgetdelmade retry impossible on exchange failure — changed toget+ post-successdeletebrainzgraphinator/brainzgraphinator.py: Message counts incremented before processing/ack — inflated progress on retriesImportant
common/postgres_resilient.py:AsyncPostgreSQLPool.initialize()TOCTOU race — two coroutines could race, overwriting the connection queuecommon/state_marker.py: Lock scope violation — unprotected reads after lock release incomplete_processing()extractor/src/state_marker.rs:start_download()didn't cleardownloads_by_filemap — counter drift on resumeScripts/Tooling
scripts/test-database-resilience.sh: Queue names missingdiscogs-source segment (always returned 0); monolithicextractorservice nameutilities/check_queues.py: Only monitored graphinator queues — now monitors all consumersDocumentation Updates
Recurring fixes across 19 files:
release-groupsexchange consistently omitted (3→4 everywhere)extractorreferences →extractor-discogs/extractor-musicbrainzTest plan
cargo checkclean)🤖 Generated with Claude Code