build: make MySQLX bridge dependencies deterministic - #6117
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (5)
🧰 Additional context used🪛 ast-grep (0.45.1)test/tap/groups/test_makefile_dependencies.py[error] 18-34: Command coming from incoming request (subprocess-from-request) 🪛 Ruff (0.16.1)test/tap/groups/test_makefile_dependencies.py[error] 19-19: (S603) [error] 20-29: Starting a process with a partial executable path (S607) 🔇 Additional comments (3)
📝 WalkthroughWalkthroughThe TAP Makefile now builds both MySQLX bridge targets through one shared ChangesMySQLX TAP dependency validation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change consolidates the MySQLX bridge test build dependency and adds a regression contract for the dependency graph; no actionable merge-blocking risk remains after normal checks and review. Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code Review ✅ ApprovedConsolidates MySQLX bridge test targets into a single shared build dependency to prevent parallel race conditions on shared objects. No issues found. OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Important Your trial ends in 4 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v3.0 #6117 +/- ##
==========================================
+ Coverage 60.80% 62.67% +1.87%
==========================================
Files 613 614 +1
Lines 175976 178202 +2226
Branches 44535 44752 +217
==========================================
+ Hits 107002 111691 +4689
+ Misses 47514 44710 -2804
- Partials 21460 21801 +341
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|



Summary
unitsubmake while preserving each public symlink targetRoot cause
test_mysqlx_plugin_load-tandtest_mysqlx_admin_tables-teach launched an independent recursive make intest/tap/tests/unit. The parent Makefile therefore had no dependency edge connecting their common helper objects and plugin build. During a parallel TAP build, both child makes could independently decide thatunit/obj/test_init.oneeded rebuilding and write the same output.The shared parent target makes the dependency boundary explicit: one child make now owns both binaries and their common prerequisites. Parallelism remains enabled inside that child dependency graph.
Validation
CI-lint-groups-jsoncommand set passed locally.python3 -m py_compileandgit diff --checkpassed.The PR's normal TSAN workflow provides the full Docker build verification.
Summary by cubic
Makes MySQLX bridge test builds deterministic by modeling both binaries as one shared dependency that runs a single
unitsubmake. Previously each target invoked its own submake and could race rebuilding shared objects; now one parent target owns both while preserving per-target symlinks.MYSQLX_BRIDGE_TESTSand a phonymysqlx-bridge-testsintest/tap/tests/Makefile;test_mysqlx_plugin_load-tandtest_mysqlx_admin_tables-tnow depend on it.ln -fs unit/$@ $@symlinks so each target remains addressable by name.test/tap/groups/test_makefile_dependencies.pyand runs it in theCI-lint-groups-jsonworkflow to assert oneunitsubmake and both symlinks.unitsubmake.Written for commit 472fd5d. Summary will update on new commits.
Summary by CodeRabbit
Bug Fixes
Tests