You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ha-integration-tests was red on main again, with 5 unrelated Raft IT classes each failing with a different symptom in the same run - the same "intermittently red, never the same test twice" pattern as #5668 (closed after #6095/#6112), just recurring.
check-test-results.py reported 5 errors out of 238 tests across 123 failsafe report files; none of the 5 failing classes are adjacent to each other in the run order, and none of the failures repeat a symptom already fixed by #6095/#6112 (those addressed Issue5410AbandonedTicketReleaseIT and RaftReplicationMaterializedViewIT specifically).
#5668's suggested direction ("give the HA ITs a shared wait-until-follower-caught-up helper, use it at every cross-node assertion") was implemented for the two call sites it named, but the failures above are new call sites / new symptom shapes:
Two of the five (RaftCommandReadConsistencyIT, RaftTimeSeriesWriteReadYourWritesIT) throw DatabaseIsClosedException: graph from a live operation, not a stale-read assertion - the database was closed out from under an in-flight command.
RaftPriorityRejoinIT's ReplicationDispatchedTimeoutException is a genuine dispatch timeout, not an assertion race - it means the underlying operation didn't finish inside its deadline on a loaded runner.
Audit BaseRaftHATest/BaseGraphServerTest for every cross-node assertion or HTTP call that doesn't already wait for the target follower to catch up to a known commit index/LSN before asserting, and extend the ha-integration-tests is intermittently red on main, on a different test each time #5668 helper to cover them (checkDatabasesAreIdentical/assertClusterConsistency looks like a direct candidate given Issue6221VerifyFanOutGuardIT's failure).
The two DatabaseIsClosedException: graph failures look like a distinct root cause (a database or server closing earlier than the test expects) rather than a slow-runner race, and are worth investigating separately before assuming they are timing-only.
Consider whether these 5 tests are individually flaky enough in isolation to warrant a rerun-on-failure policy for this lane, if a root-cause fix per test proves expensive - this session did not attempt to reproduce any of the 5 locally given the cost of standing up multi-node Raft clusters repeatedly.
Summary
ha-integration-testswas red onmainagain, with 5 unrelated Raft IT classes each failing with a different symptom in the same run - the same "intermittently red, never the same test twice" pattern as #5668 (closed after #6095/#6112), just recurring.CI run: https://github.com/ArcadeData/arcadedb/actions/runs/32960831041 (job
ha-integration-tests, commit78e63b0473b74e9aa4c2ff1117eb4ba0d74da343)Issue6221VerifyFanOutGuardIT.aVerifyWithTheClustersRealAddressesStillReportsAgreementDatabaseComparator$DatabaseAreNotIdentical: Types: DB1 6 <> DB2 5RaftCommandReadConsistencyIT.readOnlyCommandHonorsReadConsistencyOnFollowerDatabaseIsClosedException: graphRaftHTTP2ServersCreateReplicatedDatabaseIT.createReplicatedDatabaseIOException: Server returned HTTP response code: 500 for URL: http://127.0.0.1:2480/api/v1/command/graphRaftPriorityRejoinIT.leaderRestartThenReplicaRestartConvergesReplicationDispatchedTimeoutException: Group commit entry failed: TimeoutException (entry was dispatched to Raft; outcome unknown)RaftTimeSeriesWriteReadYourWritesIT.lineProtocolPartialWrite400EmitsUsableCommitIndexBookmarkRemoteExceptionwrappingDatabaseIsClosedException: graphcheck-test-results.pyreported 5 errors out of 238 tests across 123 failsafe report files; none of the 5 failing classes are adjacent to each other in the run order, and none of the failures repeat a symptom already fixed by #6095/#6112 (those addressedIssue5410AbandonedTicketReleaseITandRaftReplicationMaterializedViewITspecifically).Why file a new issue rather than reopening #5668
#5668's suggested direction ("give the HA ITs a shared wait-until-follower-caught-up helper, use it at every cross-node assertion") was implemented for the two call sites it named, but the failures above are new call sites / new symptom shapes:
RaftCommandReadConsistencyIT,RaftTimeSeriesWriteReadYourWritesIT) throwDatabaseIsClosedException: graphfrom a live operation, not a stale-read assertion - the database was closed out from under an in-flight command.RaftPriorityRejoinIT'sReplicationDispatchedTimeoutExceptionis a genuine dispatch timeout, not an assertion race - it means the underlying operation didn't finish inside its deadline on a loaded runner.RaftHTTP2ServersCreateReplicatedDatabaseIT's HTTP 500 andIssue6221VerifyFanOutGuardIT's type-count mismatch are consistent with a follower not yet caught up when checked, which ha-integration-tests is intermittently red on main, on a different test each time #5668's diagnosis covers, but neither of these two classes was in scope for the fix(#5668): deflake RaftReplicationMaterializedViewIT and Issue5410AbandonedTicketReleaseIT #6095/fix(#5668): apply stale-handle fix pattern to RaftReplicationChangeSchemaIT #6112 fix.Suggested direction
BaseRaftHATest/BaseGraphServerTestfor every cross-node assertion or HTTP call that doesn't already wait for the target follower to catch up to a known commit index/LSN before asserting, and extend the ha-integration-tests is intermittently red on main, on a different test each time #5668 helper to cover them (checkDatabasesAreIdentical/assertClusterConsistencylooks like a direct candidate givenIssue6221VerifyFanOutGuardIT's failure).DatabaseIsClosedException: graphfailures look like a distinct root cause (a database or server closing earlier than the test expects) rather than a slow-runner race, and are worth investigating separately before assuming they are timing-only.Related