Repository navigation
GH-5414 Durability chaos rig, round three - #5440
Merged
Merged
Conversation
Adds to the rig: the efpg, mysql, oracle and sqlite stores; the mysqlqueue, oraclequeue, sqlitequeue and pgshard transports; a database per tenant (CHAOS_TENANTS); Toxiproxy network faults; and the CHAOS_HANDLER_DELAY, CHAOS_RETRY_COOLDOWN, CHAOS_DB_CONTAINER and CHAOS_DURABILITY knobs. The ledger records the envelope id of each commit, and the worker logs carry timestamps and each worker's node number. Round three found #5426, #5428, #5429, #5430, #5435 and #5438, all fixed in 6.63. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013nKJrqsJw3j23Xd46q37ob
Merged
This was referenced Nov 9, 2026
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.
Closes #5414
Round three of exploratory crash testing with the durability chaos rig (
src/Testing/DurabilityChaosRig, outside both solutions and CI). Every leg now has a recorded result, and every non-clean result is either fixed in 6.63 or explained below.What the rig gained
efpg(EF Core on PostgreSQL), plusmysql,oracleandsqlite(plain ADO.NET handlers with an enlisted outbox and an in-transaction mark-as-handled).mysqlqueue,oraclequeue,sqlitequeue, andpgshard(global partitioning over 4 sharded PostgreSQL queues).CHAOS_HANDLER_DELAY,CHAOS_RETRY_COOLDOWNandCHAOS_DURABILITY=solo.CHAOS_DB_CONTAINER(any container fordbdown).CHAOS_TOXIPROXY(anetfault: latency,reset_peer, black hole).CHAOS_TENANTS(a database per tenant, the second tenant on its own container).processed.envelope_id, so a duplicate can be followed through the worker logs.Results (3 workers, 120 s of chaos unless noted)
Issues fixed in 6.63 from this round: #5426, #5428, #5429, #5430, #5435, #5438.
Expected, not bugs
Transient database errors on the handler's commit dead-letter the message, because the rig configures no retry for them:
MarkIncomingEnvelopeAsHandledInTransactionAsyncORA-50201/ORA-12516while the database is pausedThe commit rolled back in each case, so nothing is half-done and the message is in the dead letter table. An application covers this with a retry rule such as
opts.OnException<MySqlException>().RetryWithCooldown(...).🤖 Generated with Claude Code
https://claude.ai/code/session_013nKJrqsJw3j23Xd46q37ob