test: add concurrency hazard test suite (16 confirmed races)#2838
Open
hongwei1 wants to merge 4 commits into
Open
test: add concurrency hazard test suite (16 confirmed races)#2838hongwei1 wants to merge 4 commits into
hongwei1 wants to merge 4 commits into
Conversation
Adds a tagged ScalaTest suite that simulates 16 confirmed database
concurrency hazards in OBP-API: lost-update, check-then-act,
check-then-insert, unique-constraint-unhandled, and counter-sequence
races across money movement, security, consent scheduling, view
permissions, and OAuth user creation paths.
Each scenario asserts the theoretically-correct outcome so that a
hazard surfaces as a FAILED test (red bar = evidence the hazard is
real). Two safeguard scenarios (connection pool back-pressure,
per-request context isolation) are verified to PASS.
All scenarios are tagged ConcurrencyRace and excluded from the CI
main flow. See CONCURRENCY_HAZARDS.md for the full taxonomy, source
locations, and three-tier protection analysis.
Run only these tests:
mvn -pl obp-commons,obp-api scalatest:test \
-DtagsToInclude=code.concurrency.ConcurrencyRace \
-DfailIfNoTests=false
|
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
code.concurrency) that simulates 16 confirmed database concurrency hazards in OBP-API across 5 hazard categories: lost-update, check-then-act, check-then-insert, unique-constraint-unhandled, and counter-sequence.ConcurrencyRaceand excluded from the CI main flow by default.Test files (8 classes · 19 scenarios · 1,277 lines)
ConcurrentTransferRaceTestConcurrentDuplicateCreationTestConcurrentSecurityRaceTestConcurrentConsentRaceTestConcurrentViewPermissionRaceTestConcurrentConnectionMechanismTestConcurrentProviderRaceTestRun
Confirmed results
See
obp-api/src/test/scala/code/concurrency/CONCURRENCY_HAZARDS.mdfor the full taxonomy, source locations, three-tier protection analysis, and fix patterns.