Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #19051 +/- ##
============================================
- Coverage 48.12% 48.11% -0.01%
Complexity 625 625
============================================
Files 5572 5572
Lines 411488 411557 +69
Branches 54166 54195 +29
============================================
+ Hits 198010 198041 +31
- Misses 213478 213516 +38 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
I reviewed the P1 metadata recovery test additions in commit
Validation: the IT-enabled reactor compilation passed across 37 modules in the source worktree. The Failsafe report confirms only |
|
Metadata P0 review/fix round for This round found and fixed test-logic and fixture precondition issues:
Final validation: Apache IoTDB on JDK 17, The new P0 fault agent and controls stay under This round does not approve the full PR. It remains a draft pending a fresh independent review of the latest complete diff and context. |
Verify IoTConsensus staged payload retention across writer restart until a slow replica reaches the durable checkpoint, with physical values, mods and duplicate checks. Complete Tree and Table async retry recovery from original pending handoffs, including stored identity, database routing and ordered schema assertions.
Cover deletion isolation in a shared TsFile, rewrite survival through cross-space compaction and restart, and stable attribute-filter deletion scope after attribute updates. Add test-only helpers to assert the physical file preconditions.
Cover mixed sealed-file and multi-segment WAL recovery, partial and rejected inserts, cross-Region batch failure and retry, cached Session routes after leader loss, and write admission rollback with post-recovery memory release.
IoTConsensus applies writes locally before asynchronously replicating them. Wait for the complete initial row at every endpoint before injecting metadata faults, preserving the victim schema cache precondition and all recovery assertions.
|
CI failure investigation for job 125682983290, run at The reported failures come from test preconditions. Commit
Validation on Apache IoTDB with JDK 17 and
An additional potential kernel issue surfaced while testing Reviewed PR head: |
|
Independent re-review of the P1 SessionPool capacity recovery addition, reviewed at Two actionable findings were fixed in
Validation: Spotless, whitespace checks, and IT source selection passed. A local Windows/JDK 17 clean 37-module reactor built all prerequisites but reproduced the 1-second timeout error. A subsequent Maven attempt stopped before the IT because the shared TsFile cache contained a corrupt JAR. The final test source was independently compiled and run through a focused JUnit method request with the same Cluster1 properties, source-built IoTDB jars/node templates, and isolated valid copies of the packaged external dependencies: 1 test, 0 failures, 0 errors, 0 skipped; exit 0. The log confirms the The concurrently published metadata-test commit |
|
|
Independent P1 re-review of the SessionPool failed-write and interrupted-borrow capacity recovery coverage. Reviewed No actionable issue was found in the complete P1 target diff or its necessary SessionPool interactions. The test verifies an actual capacity wait on the same pool monitor before interruption, return and reuse of the held Session, the preserved interrupt flag, propagated worker failures, exact data excluding the rejected write, capacity counts, bounded worker cleanup, and node/result cleanup. Other P0/P1 scenarios were outside this review's scope. No source or test changes were needed. Validation:
Final local, source-branch, and PR heads were confirmed equal at |
|
Scoped independent re-review of commit [P2] Fixed a remaining replication race in the TTL recovery test. Successful writes and reads through different SQL coordinators do not establish that every actual IoTConsensus data replica has caught up. Stopping a DataNode immediately after fixture setup, or asserting final rows immediately after recovery writes, could mistake replication lag for a TTL/recovery failure. Added the existing Other scoped conclusions:
Final verification: Linux/JDK 17, Repair commit, final local SHA, confirmed source-branch SHA and confirmed PR head: |
|
Scoped independent re-review of commit The P0 test's bounded pre-fault wait polls all three DataNode SQL endpoints. The TTL test's two replication barriers enumerate each actual DataRegion replica and wait for IoTConsensus synchronization, covering both the pre-shutdown fixture and final post-recovery writes. The TTL assertions correctly distinguish the creation-time database TTL copied by existing tables from the explicit table TTL change. The auto-sync reproducer remains ignored because current property validation rejects Verification: no tests were rerun in this round. The retained clean Linux/JDK 17 TableClusterIT, 3CN/3DN record shows the TTL method ran with 1 test, 0 failures, 0 errors, 0 skipped and Maven exit 0. P0 was unchanged and not rerun; its prior focused pass is historical evidence. Auto-sync remains skipped. Reviewed SHA: |
Metadata IT selection and target validationThe single local re-review covered the requested metadata IT diff at
The transfer now retains only Validation on Linux / OpenJDK 17 / Maven 3.8.8:
Reviewed source SHA: The PR remains Draft. A fresh session must independently review the full current PR diff and relevant context at the latest remote head; no second complete review was performed in this session. |
Independent re-review (metadata IT scope only)Reviewed the requested three-commit net change from
The source branch and PR HEAD both match |
|
Scoped independent re-review of the complete net diff from
No actionable defect was confirmed in this scoped round. Necessary production context was read without modification. Other PR changes and withdrawn scenarios were excluded. A candidate concern about the post-recreation LAST warm-up was investigated and rejected. Validation:
No code changes, commits, or pushes were retained. Final local HEAD, confirmed |




Description
Add integration coverage for recovery windows that can lose replicated or loaded data, leave stale metadata, or retain staging resources indefinitely.
Pipe recovery
Metadata recovery
Cover live-node lease fencing/resynchronization, DDL procedure rollback or continuation across ConfigNode failover, cross-SchemaRegion deletion, asynchronous DROP and same-name recreation, delayed attribute batches, and SchemaRegion snapshot installation followed by log-tail recovery.
Retain schema-log tag/alias recovery, database TTL and view-cache recovery, and ConfigNode catalog snapshot plus subsequent DDL recovery.
Check Tree tag and alias indexes across DataNode restart and same-name recreation: stale tag keys and values must disappear, recreated aliases and data must resolve correctly, and SHOW/COUNT must preserve the exact retained series.
Schema-log recovery uses a nonempty durable mlog and a forced restart. Catalog recovery observes snapshot loading on the restarted peer, then requires that peer to become leader before checking the complete catalog, data, and follow-up DDL.
Hold an old remote-fetch response across an ATTRIBUTE update and verify that it cannot repopulate stale cache entries.
Strengthen DROP/MOD progress recovery with actual LAST-cache-hit results, retained JDBC/TableSession clients, and Tablet writes after same-name recreation.
LOAD TsFile recovery
The LOAD additions are limited to three IT files and add no production hooks or interfaces. Existing fault-injection agents remain in test sources; production metadata hooks removed earlier are not restored. Compatible scenarios share class-scoped clusters.
Deletion integrity
Write recovery and admission
The write additions are limited to six IT files and add no production hooks. Preserve the target branch's existing seed-fallback cases while adapting the new route-recovery fixture.
Validation
The tag/alias update at
4ef74f9d90eeaddsIoTDBTagAlterIT#tagAliasIndexSurvivesRestartAndCanBeRebuiltwith the reviewed negative-index and exact retained-path assertions. Spotless, whitespace, exact-content, and single-file commit-scope checks passed. Target execution was attempted but stopped during remote verification-harness preparation before compilation or IT execution; SimpleIT and ClusterIT Memory/PBTree variants remain unverified at this head. The IT selection check also did not complete on Windows because its shard-list subprocess exited 1. Earlier master results and the older isolated-checkout PBTree failure are historical evidence only.The retained metadata additions passed 3 configurations on Linux / OpenJDK 17: 2 methods under TableClusterIT, plus DROP/MOD under TableSimpleIT, with 0 failures/errors/skips for those retained methods. The broader cluster command exited 1 because the SchemaRegion migration case failed at DELETE DEVICES with a null TDataNodeLocation; that entire new case was withdrawn from this update. The single-node Maven command exited 0.
The original complete metadata rerun reported 4 passing and 5 failing configurations. Failed propagation scenarios remain excluded. That historical rerun also had a TagAlter PBTree failure; the corrected, complete parameterized TagAlter case is now included, with its current-head verification reported separately above. Assertions and scenarios were not weakened.
Target metadata validation rebuilt the required IoTDB dependency closure from clean source in an isolated reactor, then reused those exact source-built artifacts under recorded provenance for the focused fixes. This was not a fresh uncached full build. The IT module compiled. The controller uses the target fixture's existing JVM options API; runtime ASM scope keeps cglib's ASM dependency in ordinary child-node templates.
Scoped metadata Spotless, source-selection, final source-hash and whitespace checks passed. Existing module Checkstyle excludes all inputs because its exclusion expression has an empty alternative; its successful exit is not counted as effective validation, and that configuration remains unchanged.
All newly added write scenarios were run locally before transfer. Five files match the independently reviewed source byte for byte. The Session route-recovery addition preserves the reviewed write logic while omitting an audit setup helper unavailable in the target fixture; existing target seed-fallback tests remain unchanged.
Spotless passed for the adapted Session file; exact-content, compatibility, whitespace, and six-file commit-scope checks passed. This transfer did not rerun executable tests on the target branch or validate the combined PR head. The adapted route-recovery method, complete write selection, Linux, and Chinese locale remain unverified at this head.
The three added deletion scenarios were run locally and passed before transfer. Their test bodies, shared setup, and supporting utility code match the independently reviewed source at
28c5028bb462plus the working changes. This transfer did not rerun executable tests or validate the combined PR head.Spotless passed for all four deletion files; whitespace, commit-scope, and exact-content checks passed. The deletion update changes test sources only.
All newly added LOAD scenarios have been run locally on Apache IoTDB / JDK 17 with ClusterIT and TableClusterIT. A combined selection passed 4 tests, 0 failures, 0 errors, 0 skipped. After strengthening the ordered Table schema assertion, the latest focused run passed 1 test, 0 failures, 0 errors, 0 skipped, with Maven exit code 0.
Those LOAD runs used source revision
28c5028bb462plus the working changes. The exact reviewed three-file contents were transferred into this PR. Existing source-built dependencies and node templates were reused under recorded provenance; this was not a fresh uncached full build.Earlier metadata P0 verification at
030e5c543f9passed 17 tests, 0 failures, 0 errors, 0 skipped. The retained adapted schema-log and catalog recovery cases subsequently passed individually. These historical results are not a full-PR-head validation.Spotless passed for the LOAD source changes; whitespace and exact file-content checks passed for this update. No executable test was rerun while transferring the unchanged files to the PR branch.
Existing Pipe and earlier metadata suites were not rerun in this transfer. The full IT suite, other editions/profiles, and Chinese locale remain unverified. The complete combined PR diff still requires a fresh independent review. Directory-cleanup failures were not injected.
Precise LOAD PIECE/PREPARE faults, lost COMMIT responses, and coordinator-orphan task recovery (P0-01/02/03/05) remain outside this addition. Ordinary restart/throttling and the empty cleaner scan probe are not counted as that coverage.
Review status
Keep this PR as a draft pending an independent review of the complete updated PR diff and context. The individual workspace reviews do not approve the complete combined PR diff. The write transfer includes a target-fixture adaptation and also requires independent review at the updated head.
The Pipe-focused workflow-dispatch input
pipe_p0_onlycontinues to selectIoTDBPipeRecoveryITunderMultiClusterIT2DualTreeAutoEnhanced.