fix: comprehensive bug fixes across all services — round 16#256
Merged
SimplicityGuy merged 1 commit intomainfrom Apr 1, 2026
Merged
fix: comprehensive bug fixes across all services — round 16#256SimplicityGuy merged 1 commit intomainfrom
SimplicityGuy merged 1 commit intomainfrom
Conversation
Docker service names (fix-one-fix-all): - api/metrics_collector.py: "extractor" → "extractor-discogs" + "extractor-musicbrainz" - utilities/system_monitor.py: same fix in services list System monitor robustness: - get_service_logs: catch TimeoutExpired alongside CalledProcessError - check_postgres_status: use POSTGRES_USERNAME/DATABASE env vars instead of hardcoded values Lock scope discipline (state_marker.py): - should_process(): snapshot shared state under lock before branching - pending_files(): read progress_by_file under lock - complete_download(): capture log values inside lock before release Consumer recovery state reset (fix-one-fix-all): - tableinator _recover_consumers: reset active_connection/channel to None on error - graphinator _recover_consumers: same fix (brainz* services already had it) Rust extractor resume safety: - process_discogs_data: guard start_processing on Pending only; InProgress resumes without zeroing counters - process_musicbrainz_data: same fix Insights coroutine safety: - run_all_computations: use lambda factories to defer coroutine creation, preventing unawaited-coroutine warnings on CancelledError 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! |
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
"extractor"→"extractor-discogs"+"extractor-musicbrainz"inapi/metrics_collector.pyandutilities/system_monitor.py(fix-one-fix-all — round 14 fixedcheck_errors.pybut missed these two files)TimeoutExpiredcatch inget_service_logs; use env vars for PostgreSQL credentials instead of hardcoded valuesstate_marker.pyshould_process(),pending_files(), andcomplete_download()now read shared state under the lockactive_connection = None/active_channel = Nonereset intableinatorandgraphinator_recover_consumerserror handlers (brainz* services already had this fix — fix-one-fix-all violation)start_processing()no longer resetsfiles_processed/records_extractedcounters when resuming anInProgressextractionrun_all_computationsto defer coroutine creation, preventingRuntimeWarning: coroutine was never awaitedonCancelledErrorTest plan
uv run ruff check— all modified files passuv run mypy— all modified files passcargo check— Rust compilation cleancargo test— 14 passeduv run pytest tests/common/test_state_marker.py tests/insights/test_computations.py— 64 passeduv run pytest tests/graphinator/ tests/tableinator/— 348 passeduv run pytest tests/api/ tests/brainzgraphinator/ tests/brainztableinator/— 1576 passed🤖 Generated with Claude Code