From 69a9448aae3f21cf2d7549fd708ae398e2b74106 Mon Sep 17 00:00:00 2001 From: discord9 Date: Fri, 21 Aug 2026 18:10:58 +0800 Subject: [PATCH] docs: record beta2 secure-fs test portability fix Signed-off-by: discord9 --- backport-review/v1.2-beta2/README.md | 26 ++++++++----- .../aggregate-commit-provenance.tsv | 1 + .../v1.2-beta2/aggregate-commits.tsv | 1 + backport-review/v1.2-beta2/aggregate.diff | 35 +++++++++++++++++ .../v1.2-beta2/decisions/README.md | 14 +++++-- .../decisions/event-context-compatibility.md | 2 +- .../v1.2-beta2/decisions/json2-mergescan.md | 2 +- backport-review/v1.2-beta2/manual-deltas.md | 12 ++++-- .../v1.2-beta2/patch-id-verdict.tsv | 1 + .../v1.2-beta2/range-diffs/pr-8752.txt | 39 +++++++++++++++++++ .../v1.2-beta2/range-diffs/pr-8825.txt | 2 +- .../v1.2-beta2/upstream-pr-map.tsv | 1 + 12 files changed, 116 insertions(+), 20 deletions(-) create mode 100644 backport-review/v1.2-beta2/range-diffs/pr-8752.txt diff --git a/backport-review/v1.2-beta2/README.md b/backport-review/v1.2-beta2/README.md index fa8411ed754..0464a11deb6 100644 --- a/backport-review/v1.2-beta2/README.md +++ b/backport-review/v1.2-beta2/README.md @@ -4,10 +4,10 @@ - Release base: `2f5e97850e55d86c0ed9eff1719994c88b4450a0` - Aggregate branch: `work/release-v1.2-beta2-complete` -- Aggregate head: `6f150e01cd4221d4c62c5f7082f6d318b3110e00` -- Aggregate commits: 48 (the prior 47-commit aggregate history plus the #8751 dependency-closure carrier) -- CI evidence: Historical [GitHub Actions run 32341712112](https://github.com/GreptimeTeam/greptimedb/actions/runs/32341712112), whose actual head SHA was `b5c38fbfc15053f42d4c1d843204bbdd52cb4a00`, failed on the superseded-base aggregate: Clippy, Check Unused Dependencies, and Check (ubuntu-latest) failed; SQLness, Compatibility Test, binary builds, Rustfmt, license, and fuzz passed; `test` was skipped downstream because Clippy and Check Unused Dependencies failed, while `coverage` was skipped independently because this was a `workflow_dispatch` run and coverage runs only for `merge_group`. The later [Release run 32462587383](https://github.com/GreptimeTeam/greptimedb/actions/runs/32462587383) was triggered at the pre-#8751 head `81fd630955f16b9c45811539aa8434b47d5a875b`: its Windows job `96713326607` failed in the composite Windows-artifact step, while the overall run was subsequently cancelled and dependent jobs were cancelled. This Windows result is evidence of that run's job outcome, not a diagnosis of #8751 and not final CI for the refreshed head. No final CI result is claimed for `2f5e97850e55d86c0ed9eff1719994c88b4450a0..6f150e01cd4221d4c62c5f7082f6d318b3110e00`. -- `release/v1.2` was fast-forwarded to the aggregate head `6f150e01cd4221d4c62c5f7082f6d318b3110e00`; the range remains linear with zero merge commits. +- Aggregate head: `cb52adcbf798d3d2f009874f46dc5d476073bd8c` +- Aggregate commits: 49 (the prior 48-commit aggregate history plus the #8752 secure_fs test-portability follow-up) +- CI evidence: Historical [GitHub Actions run 32341712112](https://github.com/GreptimeTeam/greptimedb/actions/runs/32341712112), whose actual head SHA was `b5c38fbfc15053f42d4c1d843204bbdd52cb4a00`, failed on the superseded-base aggregate: Clippy, Check Unused Dependencies, and Check (ubuntu-latest) failed; SQLness, Compatibility Test, binary builds, Rustfmt, license, and fuzz passed; `test` was skipped downstream because Clippy and Check Unused Dependencies failed, while `coverage` was skipped independently because this was a `workflow_dispatch` run and coverage runs only for `merge_group`. The later [Release run 32462587383](https://github.com/GreptimeTeam/greptimedb/actions/runs/32462587383) was triggered at the pre-#8751 head `81fd630955f16b9c45811539aa8434b47d5a875b`: its Windows job `96713326607` failed in the composite Windows-artifact step, while the overall run was subsequently cancelled and dependent jobs were cancelled. The refreshed Release run [32466550985](https://github.com/GreptimeTeam/greptimedb/actions/runs/32466550985) Windows job `96725255397` also failed. These Windows results are evidence of job outcomes, not a diagnosis and not final CI success for the refreshed head. Final-head tag-push [Release run 32470573285](https://github.com/GreptimeTeam/greptimedb/actions/runs/32470573285) has started at `cb52adcbf798d3d2f009874f46dc5d476073bd8c`; no final CI result is claimed yet for `2f5e97850e55d86c0ed9eff1719994c88b4450a0..cb52adcbf798d3d2f009874f46dc5d476073bd8c`. +- `release/v1.2` was fast-forwarded to the aggregate head `cb52adcbf798d3d2f009874f46dc5d476073bd8c`; the range remains linear with zero merge commits. ## How to read the artifacts @@ -25,7 +25,7 @@ ## Scope -The review scope has 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. The current Issue body contains the original 31 requests, while the public comments add #8825, #8921, #8895, and #8901; [comment 5366438434](https://github.com/GreptimeTeam/greptimedb/issues/8892#issuecomment-5366438434), posted by `discord9` at `2026-08-21T07:12:57Z`, publicly requests #8902. Official PR #8921 is now in the release base `2f5e97850e55d86c0ed9eff1719994c88b4450a0`, so it is base-present and is not represented as an aggregate carrier. #8672 and #8699 remain base-present as well. The other public Issue-requested PRs are represented by backport mappings; #8825 remains carried by `d18430b874f9c8054747dbf688585cd7d2988e3e`, and #8902 is carried by the final pre-version carrier `40e02ff6b62ad3445f7035e437bd9e322c8af31b`, followed by the non-PR version identity commit `81fd630955f16b9c45811539aa8434b47d5a875b`. The dependency closure adds exactly three provenance relationships: full #8734, a release-compatible slice of #8392, and #8751 (upstream merge b70daafc77c87806afd00521c368545a60e5f574), for 39 total provenance relationships. The patch-ID verdict contains 14 exact stable patch-ID relationships—#8777, #8832, #8787, #8849, #8859, #8889, #8833, #8600, #8808, #8709, #8522, #8739, #8772, and #8901—and 21 adapted relationships, including the production-only partial #8751 carrier. +The review scope has 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. The current Issue body contains the original 31 requests, while the public comments add #8825, #8921, #8895, and #8901; [comment 5366438434](https://github.com/GreptimeTeam/greptimedb/issues/8892#issuecomment-5366438434), posted by `discord9` at `2026-08-21T07:12:57Z`, publicly requests #8902. Official PR #8921 is now in the release base `2f5e97850e55d86c0ed9eff1719994c88b4450a0`, so it is base-present and is not represented as an aggregate carrier. #8672 and #8699 remain base-present as well. The other public Issue-requested PRs are represented by backport mappings; #8825 remains carried by `d18430b874f9c8054747dbf688585cd7d2988e3e`, and #8902 is carried by the final pre-version carrier `40e02ff6b62ad3445f7035e437bd9e322c8af31b`, followed by the non-PR version identity commit `81fd630955f16b9c45811539aa8434b47d5a875b`. The dependency closure/follow-up adds exactly four provenance relationships: full #8734, a release-compatible slice of #8392, #8751, and test-only #8752 (upstream merge 4e43c279ff29e9071394f85b90b874906115d29f), for 40 total provenance relationships. The patch-ID verdict contains 14 exact stable patch-ID relationships—#8777, #8832, #8787, #8849, #8859, #8889, #8833, #8600, #8808, #8709, #8522, #8739, #8772, and #8901—and 22 adapted relationships, including the production-only partial #8751 carrier and the test-only #8752 follow-up. ## Mapping classes @@ -38,7 +38,7 @@ The review scope has 36 public Issue-requested PR relationships: the original 31 ## Dependency closure: upstream #8751 required by #8734 -Upstream PR [#8751](https://github.com/GreptimeTeam/greptimedb/pull/8751), merge `b70daafc77c87806afd00521c368545a60e5f574`, is recorded as a dependency-closure relationship required by upstream [#8734](https://github.com/GreptimeTeam/greptimedb/pull/8734). The aggregate carrier is `6f150e01cd4221d4c62c5f7082f6d318b3110e00`, and the release-base parent remains `2f5e97850e55d86c0ed9eff1719994c88b4450a0`. +Upstream PR [#8751](https://github.com/GreptimeTeam/greptimedb/pull/8751), merge `b70daafc77c87806afd00521c368545a60e5f574`, is recorded as a dependency-closure relationship required by upstream [#8734](https://github.com/GreptimeTeam/greptimedb/pull/8734). The aggregate carrier is `cb52adcbf798d3d2f009874f46dc5d476073bd8c`, and the release-base parent remains `2f5e97850e55d86c0ed9eff1719994c88b4450a0`. The upstream PR has two hunks: a production cleanup in `src/common/meta/src/ddl/drop_table.rs` and a rollback regression-test hunk in `src/common/meta/src/ddl/tests/drop_table.rs`. The regression test was already present through the existing #8734 backport sequence, so the refreshed aggregate carrier contains only the production hunk. This is a production-only partial upstream carrier; its stable patch ID is therefore not equal to the full upstream patch, and `patch-id-verdict.tsv` classifies #8751 as **adapted**, not exact. The raw comparison is [`range-diffs/pr-8751.txt`](range-diffs/pr-8751.txt). @@ -54,10 +54,16 @@ These are local before/after verification records; they do not overstate the can PR #8824 is accepted by explicit release-owner direction in this backport session. Public artifacts do not identify a named approver or date; Issue comment [5352919911](https://github.com/GreptimeTeam/greptimedb/issues/8892#issuecomment-5352919911) is the public record of the accepted exception, not evidence of independent third-party approval. It changes native-histogram persisted Struct children in place (`UInt32/UInt64` fields to `Int32/Int64`, including `count_u64`/`zero_count_u64` becoming `count_i64`/`zero_count_i64`) without a migration, downgrade, or mixed-version compatibility layer. This is an accepted release risk based on the feature being believed unused, not a compatibility guarantee. -## Final rebased range, appended #8902, and dependency closure #8751 +## Final rebased range, appended #8902, dependency closure #8751, and test-only #8752 follow-up -The final review range is `2f5e97850e55d86c0ed9eff1719994c88b4450a0..6f150e01cd4221d4c62c5f7082f6d318b3110e00`, a linear 48-commit range. The superseded beta2 base `8eeff8b4417e6fb675a66cecbdba40060322785c` and endpoint `b7fdcb89568dc707c323f8c0a3b9413ec4e889ab` are historical provenance only; all active aggregate carrier fields in the TSV indexes are remapped to the rebased commits. Official #8921 is the release-base commit `2f5e97850e55d86c0ed9eff1719994c88b4450a0`, not a duplicate aggregate carrier. +The final review range is `2f5e97850e55d86c0ed9eff1719994c88b4450a0..cb52adcbf798d3d2f009874f46dc5d476073bd8c`, a linear 49-commit range. The superseded beta2 base `8eeff8b4417e6fb675a66cecbdba40060322785c` and endpoint `b7fdcb89568dc707c323f8c0a3b9413ec4e889ab` are historical provenance only; all active aggregate carrier fields in the TSV indexes are remapped to the rebased commits. Official #8921 is the release-base commit `2f5e97850e55d86c0ed9eff1719994c88b4450a0`, not a duplicate aggregate carrier. -The three selected PRs #8672, #8699, and #8921 are base-present; the other selected PRs have aggregate provenance. Thus the machine-readable indexes contain exactly 36 public Issue-requested PR rows plus exactly the three closure rows (#8734, #8392, and #8751): 39 unique provenance relationships. +The three selected PRs #8672, #8699, and #8921 are base-present; the other selected PRs have aggregate provenance. Thus the machine-readable indexes contain exactly 36 public Issue-requested PR rows plus exactly the four closure/follow-up rows (#8734, #8392, #8751, and #8752): 40 unique provenance relationships. -PR #8902 is carried by pre-version commit `40e02ff6b62ad3445f7035e437bd9e322c8af31b`; the final version identity is recorded by non-PR release-extra commit `6f150e01cd4221d4c62c5f7082f6d318b3110e00`; its readable decision is [Dictionary group-by fast path](decisions/dictionary-groupby-fast-path.md), and its raw patch comparison is [#8902](range-diffs/pr-8902.txt). +PR #8902 is carried by pre-version commit `40e02ff6b62ad3445f7035e437bd9e322c8af31b`; the final version identity is recorded by non-PR release-extra commit `cb52adcbf798d3d2f009874f46dc5d476073bd8c`; its readable decision is [Dictionary group-by fast path](decisions/dictionary-groupby-fast-path.md), and its raw patch comparison is [#8902](range-diffs/pr-8902.txt). + +## Test-only follow-up: upstream #8752 and secure_fs portability + +Upstream PR [#8752](https://github.com/GreptimeTeam/greptimedb/pull/8752), merge `4e43c279ff29e9071394f85b90b874906115d29f`, is appended as a test-only dependency-closure/follow-up relationship for the #8735/#8708 `secure_fs` behavior chain. The target parent lacked the #8735 context, so this carrier is adapted to the beta2 parent; the resulting test body matches final main. Carrier `cb52adcbf798d3d2f009874f46dc5d476073bd8c` changes only `src/object-store/src/secure_fs.rs`, preserving the portable call/path checks while gating the strong `is_none()` assertion to non-Windows. See [`range-diffs/pr-8752.txt`](range-diffs/pr-8752.txt). + +Oracle review: **APPROVE**. Focused Main verification passed 20/20 without retry, log SHA `fc831f2b2d51c79e8b1fbc6267e8fe8bac90d06c746e1136067e9bcbcbec40df`; fixer focused verification and full object-store verification each passed 20/20 without retry. No native Windows post-fix run has been performed yet, and no final CI success is claimed. Release run [32466550985](https://github.com/GreptimeTeam/greptimedb/actions/runs/32466550985) Windows job `96725255397` failed; this is recorded as a failure only and is not treated as final refreshed-head CI success. diff --git a/backport-review/v1.2-beta2/aggregate-commit-provenance.tsv b/backport-review/v1.2-beta2/aggregate-commit-provenance.tsv index 7a6ba313f89..f04466ae7a1 100644 --- a/backport-review/v1.2-beta2/aggregate-commit-provenance.tsv +++ b/backport-review/v1.2-beta2/aggregate-commit-provenance.tsv @@ -46,3 +46,4 @@ fed5c80d7e94bd2c8ab1f7ddac8ab205d993156d d7f1233f775d54380318d6ad9ff62504a7cbcff 40e02ff6b62ad3445f7035e437bd9e322c8af31b d99b0df374eec0329ac3f430e40b80a1e6c6963c; 1a91c76c615afec71239b84af7787a0505bef914 (absorbed) 8c3fca20ce058fd569d436c38bc96e41fc1adbca fix(query): restore columnar group-by for dictionary-encoded tags 81fd630955f16b9c45811539aa8434b47d5a875b 9469fd7d7cb138515cd72d18861dd00b9dc2b74b chore: bump version to 1.2.0-beta.2 6f150e01cd4221d4c62c5f7082f6d318b3110e00 b70daafc77c87806afd00521c368545a60e5f574 1ef6788196f8233a3d2ab7183216271210049f9a fix(meta): release region guards after drop rollback (#8751) +cb52adcbf798d3d2f009874f46dc5d476073bd8c 4e43c279ff29e9071394f85b90b874906115d29f b035a8aaf23c7482a38a3129cba1792f29c69276 fix(object-store): make removed-entry lister test portable (#8752) diff --git a/backport-review/v1.2-beta2/aggregate-commits.tsv b/backport-review/v1.2-beta2/aggregate-commits.tsv index fe87aa7f7a7..07e2afb88f8 100644 --- a/backport-review/v1.2-beta2/aggregate-commits.tsv +++ b/backport-review/v1.2-beta2/aggregate-commits.tsv @@ -46,3 +46,4 @@ fed5c80d7e94bd2c8ab1f7ddac8ab205d993156d feat: add JSON2 storage layout settings 40e02ff6b62ad3445f7035e437bd9e322c8af31b fix(query): restore columnar group-by for dictionary-encoded tags 81fd630955f16b9c45811539aa8434b47d5a875b chore: bump version to 1.2.0-beta.2 6f150e01cd4221d4c62c5f7082f6d318b3110e00 fix(meta): release region guards after drop rollback (#8751) +cb52adcbf798d3d2f009874f46dc5d476073bd8c fix(object-store): make removed-entry lister test portable (#8752) diff --git a/backport-review/v1.2-beta2/aggregate.diff b/backport-review/v1.2-beta2/aggregate.diff index 5cf015f513c..a08bb1dddb2 100644 --- a/backport-review/v1.2-beta2/aggregate.diff +++ b/backport-review/v1.2-beta2/aggregate.diff @@ -21750,6 +21750,41 @@ index 020bf0409..d62bf8369 100644 + result.sender.send(Ok(0)); + } } +diff --git a/src/object-store/src/secure_fs.rs b/src/object-store/src/secure_fs.rs +index cb58f6b2a..d793dee6e 100644 +--- a/src/object-store/src/secure_fs.rs ++++ b/src/object-store/src/secure_fs.rs +@@ -622,6 +622,14 @@ mod tests { + assert!(operator.list("file/").await.unwrap().is_empty()); + } + ++ // On Windows, `std::fs::DirEntry` is a snapshot taken by ++ // `FindFirstFileW`: `file_type()` and `metadata()` keep returning the ++ // cached data even after the file is removed, so `read_list_entry` ++ // may return `Some` with the stale entry. On platforms where metadata ++ // is fetched from the live filesystem (e.g. Unix `lstat` returns ++ // `ENOENT` after removal), `read_list_entry` returns `None` instead. ++ // The strong assertion is Unix-specific; the portable part still ++ // verifies the call succeeds and yields the expected path. + #[test] + fn test_lister_skips_entry_removed_during_iteration() { + let temp_dir = create_temp_dir("secure_fs_lister_removed_entry"); +@@ -632,7 +640,14 @@ mod tests { + let entry = read_dir.next().unwrap().unwrap(); + std::fs::remove_file(path).unwrap(); + +- assert!(read_list_entry(entry, "").unwrap().is_none()); ++ let result = read_list_entry(entry, "").unwrap(); ++ ++ if let Some(entry) = &result { ++ assert_eq!("removed", entry.path()); ++ } ++ ++ #[cfg(not(windows))] ++ assert!(result.is_none()); + } + + #[tokio::test] diff --git a/src/operator/Cargo.toml b/src/operator/Cargo.toml index bd34e21ed..087ea461f 100644 --- a/src/operator/Cargo.toml diff --git a/backport-review/v1.2-beta2/decisions/README.md b/backport-review/v1.2-beta2/decisions/README.md index dea9826d885..b7ae4a89254 100644 --- a/backport-review/v1.2-beta2/decisions/README.md +++ b/backport-review/v1.2-beta2/decisions/README.md @@ -2,7 +2,7 @@ **Start here.** This is the canonical, priority-ordered index of behavior that was reconstructed, sliced, folded, or adapted for v1.2.0-beta.2. The aggregate head -is [`6f150e01cd4`](https://github.com/GreptimeTeam/greptimedb/commit/6f150e01cd4221d4c62c5f7082f6d318b3110e00); +is [`6f150e01cd4`](https://github.com/GreptimeTeam/greptimedb/commit/cb52adcbf798d3d2f009874f46dc5d476073bd8c); links to the shipping commits below are immutable commit links. A range-diff is an audit of the *difference between two patches*, not the full @@ -11,9 +11,9 @@ not edited. ## Canonical CI status -The recorded historical [GitHub Actions run 32341712112](https://github.com/GreptimeTeam/greptimedb/actions/runs/32341712112), whose actual head SHA was `b5c38fbfc15053f42d4c1d843204bbdd52cb4a00`, failed on the superseded-base aggregate: Clippy, Check Unused Dependencies, and Check (ubuntu-latest) failed; SQLness, Compatibility Test, binary builds, Rustfmt, license, and fuzz passed; `test` was skipped downstream because Clippy and Check Unused Dependencies failed, while `coverage` was skipped independently because this was a `workflow_dispatch` run and coverage runs only for `merge_group`. The later [Release run 32462587383](https://github.com/GreptimeTeam/greptimedb/actions/runs/32462587383) ran at pre-#8751 head `81fd630955f16b9c45811539aa8434b47d5a875b`; Windows job `96713326607` failed in the composite Windows-artifact step, and the overall run was subsequently cancelled with dependent jobs cancelled. This is Windows job evidence, not a root-cause attribution to #8751 and not final CI for the refreshed head. +The recorded historical [GitHub Actions run 32341712112](https://github.com/GreptimeTeam/greptimedb/actions/runs/32341712112), whose actual head SHA was `b5c38fbfc15053f42d4c1d843204bbdd52cb4a00`, failed on the superseded-base aggregate: Clippy, Check Unused Dependencies, and Check (ubuntu-latest) failed; SQLness, Compatibility Test, binary builds, Rustfmt, license, and fuzz passed; `test` was skipped downstream because Clippy and Check Unused Dependencies failed, while `coverage` was skipped independently because this was a `workflow_dispatch` run and coverage runs only for `merge_group`. The later [Release run 32462587383](https://github.com/GreptimeTeam/greptimedb/actions/runs/32462587383) ran at pre-#8751 head `81fd630955f16b9c45811539aa8434b47d5a875b`; Windows job `96713326607` failed in the composite Windows-artifact step, and the overall run was subsequently cancelled with dependent jobs cancelled. The refreshed [Release run 32466550985](https://github.com/GreptimeTeam/greptimedb/actions/runs/32466550985) Windows job `96725255397` also failed. These are Windows job outcomes, not root-cause attribution and not final CI success for the refreshed head. Final-head tag-push [Release run 32470573285](https://github.com/GreptimeTeam/greptimedb/actions/runs/32470573285) has started at `cb52adcbf798d3d2f009874f46dc5d476073bd8c`; no final result is claimed yet. -Recorded local before/after verification is: before #8751, Main 4/4 failed; after #8751, Main 20/20 passed with no retry (log SHA `fa9ae951fa78dce66c7b0aedc81cd172c9fc898445712162c616c99aeb7000d8`), and common-meta 546/546 passed with no retry (log SHA `84b54cdff1767a2c0e0683e59a955472eacabc769871c5d893940f07d932a79a`). No final CI result is claimed for the refreshed range `2f5e97850e55d86c0ed9eff1719994c88b4450a0..6f150e01cd4221d4c62c5f7082f6d318b3110e00`; these are recorded local verification results only. +Recorded local before/after verification is: before #8751, Main 4/4 failed; after #8751, Main 20/20 passed with no retry (log SHA `fa9ae951fa78dce66c7b0aedc81cd172c9fc898445712162c616c99aeb7000d8`), and common-meta 546/546 passed with no retry (log SHA `84b54cdff1767a2c0e0683e59a955472eacabc769871c5d893940f07d932a79a`). For #8752, focused Main passed 20/20 without retry (log SHA `fc831f2b2d51c79e8b1fbc6267e8fe8bac90d06c746e1136067e9bcbcbec40df`); fixer focused and full object-store verification each recorded 20/20 without retry. No final CI result is claimed for the refreshed range `2f5e97850e55d86c0ed9eff1719994c88b4450a0..cb52adcbf798d3d2f009874f46dc5d476073bd8c`; these are recorded local verification results only. ## 1. BLOCKING / compatibility decisions @@ -64,8 +64,14 @@ Exact entries with nearby context can be reviewed from [dependency and baseline ## Final provenance scope -The final review records 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Three selected PRs—#8672, #8699, and #8921—are base-present. The dependency closure adds exactly three relationships: full #8734, the release-compatible slice of #8392, and #8751 (upstream merge `b70daafc77c87806afd00521c368545a60e5f574`). The indexes therefore contain 39 unique PR provenance relationships total; the non-PR version identity commit is recorded separately in the aggregate provenance ledger. The patch-ID verdict contains 14 exact stable patch-ID relationships and 21 adapted relationships; its exact list includes #8901. The #8895 and #8901 mappings and complete upstream ranges are covered in [JSON2 merge/layout coverage](json2-mergescan.md) and [`manual-deltas.md`](../manual-deltas.md). +The final review records 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Three selected PRs—#8672, #8699, and #8921—are base-present. The dependency closure/follow-up adds exactly four relationships: full #8734, the release-compatible slice of #8392, #8751, and test-only #8752 (upstream merge `4e43c279ff29e9071394f85b90b874906115d29f`). The indexes therefore contain 40 unique PR provenance relationships total; the non-PR version identity commit is recorded separately in the aggregate provenance ledger. The patch-ID verdict contains 14 exact stable patch-ID relationships and 22 adapted relationships; its exact list includes #8901. The #8895 and #8901 mappings and complete upstream ranges are covered in [JSON2 merge/layout coverage](json2-mergescan.md) and [`manual-deltas.md`](../manual-deltas.md). ## Recorded verification context See the [canonical CI status](#canonical-ci-status) above. Aggregate history and range-diffs are linked evidence; this index makes no claim of tests beyond those recorded in the existing artifacts. + +## Test-only follow-up: #8752 secure_fs portability + +Upstream [#8752](https://github.com/GreptimeTeam/greptimedb/pull/8752), merge `4e43c279ff29e9071394f85b90b874906115d29f`, is recorded as a test-only dependency-closure/follow-up relationship for the #8735/#8708 secure_fs behavior chain. The target parent lacked #8735 context; the adapted carrier `cb52adcbf798d3d2f009874f46dc5d476073bd8c` retains the final-main test body, with portable call/path checks and the stronger `is_none()` assertion only on non-Windows. It is the 40th relationship. Raw evidence is [`pr-8752.txt`](../range-diffs/pr-8752.txt). + +Oracle: **APPROVE**. Focused Main \ No newline at end of file diff --git a/backport-review/v1.2-beta2/decisions/event-context-compatibility.md b/backport-review/v1.2-beta2/decisions/event-context-compatibility.md index 43e838bc024..bdb39f7ee6a 100644 --- a/backport-review/v1.2-beta2/decisions/event-context-compatibility.md +++ b/backport-review/v1.2-beta2/decisions/event-context-compatibility.md @@ -8,7 +8,7 @@ Immutable upstream patches: [#8734](https://github.com/GreptimeTeam/greptimedb/c ## Resulting backport patch — what ships -Carriers are [#8734](https://github.com/GreptimeTeam/greptimedb/commit/e9ad585975022b206275afb2735ac480869bcd33), [#8834](https://github.com/GreptimeTeam/greptimedb/commit/5d059c84bd2f7ecb724d5a84501196d57f27481a), [#8835](https://github.com/GreptimeTeam/greptimedb/commit/22174d32dadf9ea58073b15c72828db9927969c6), and [#8852](https://github.com/GreptimeTeam/greptimedb/commit/2927fa339ec677fb632a8940bcd0d43eea78881a). The #8825 carrier is [d18430b874f9c8054747dbf688585cd7d2988e3e](https://github.com/GreptimeTeam/greptimedb/commit/d18430b874f9c8054747dbf688585cd7d2988e3e), the final aggregate head is `6f150e01cd4221d4c62c5f7082f6d318b3110e00` (with `40e02ff6b62ad3445f7035e437bd9e322c8af31b` as the pre-version carrier). Rolling extras [legacy fallback](https://github.com/GreptimeTeam/greptimedb/commit/46edabe916a10c2cafe816b8fe01f0d5da8fffc8) and [single conversion](https://github.com/GreptimeTeam/greptimedb/commit/e61a6df6b2b110badd5755f68010b6439d69ac84) complete compatibility. The narrow test adaptations [9bf878f5](https://github.com/GreptimeTeam/greptimedb/commit/9bf878f562518d30a412138ad4244d7d8e7867e6) and [6595b5d7b](https://github.com/GreptimeTeam/greptimedb/commit/6595b5d7bf1f59587bf89676d420db7371cdc459) are retained and not reverted. +Carriers are [#8734](https://github.com/GreptimeTeam/greptimedb/commit/e9ad585975022b206275afb2735ac480869bcd33), [#8834](https://github.com/GreptimeTeam/greptimedb/commit/5d059c84bd2f7ecb724d5a84501196d57f27481a), [#8835](https://github.com/GreptimeTeam/greptimedb/commit/22174d32dadf9ea58073b15c72828db9927969c6), and [#8852](https://github.com/GreptimeTeam/greptimedb/commit/2927fa339ec677fb632a8940bcd0d43eea78881a). The #8825 carrier is [d18430b874f9c8054747dbf688585cd7d2988e3e](https://github.com/GreptimeTeam/greptimedb/commit/d18430b874f9c8054747dbf688585cd7d2988e3e), the final aggregate head is `cb52adcbf798d3d2f009874f46dc5d476073bd8c` (with `40e02ff6b62ad3445f7035e437bd9e322c8af31b` as the pre-version carrier). Rolling extras [legacy fallback](https://github.com/GreptimeTeam/greptimedb/commit/46edabe916a10c2cafe816b8fe01f0d5da8fffc8) and [single conversion](https://github.com/GreptimeTeam/greptimedb/commit/e61a6df6b2b110badd5755f68010b6439d69ac84) complete compatibility. The narrow test adaptations [9bf878f5](https://github.com/GreptimeTeam/greptimedb/commit/9bf878f562518d30a412138ad4244d7d8e7867e6) and [6595b5d7b](https://github.com/GreptimeTeam/greptimedb/commit/6595b5d7bf1f59587bf89676d420db7371cdc459) are retained and not reverted. ## PR #8825 mapping and exact conflict resolution diff --git a/backport-review/v1.2-beta2/decisions/json2-mergescan.md b/backport-review/v1.2-beta2/decisions/json2-mergescan.md index 281c9340bdd..d7181126ba5 100644 --- a/backport-review/v1.2-beta2/decisions/json2-mergescan.md +++ b/backport-review/v1.2-beta2/decisions/json2-mergescan.md @@ -47,4 +47,4 @@ The explicit Issue-requested JSON2 layout PRs are also represented in the machin - **#8895**: upstream merge `d7f1233f775d54380318d6ad9ff62504a7cbcff1`, head `6b8645bf584a04b45828c7e8d0fb19418db70d2e`, complete upstream range `0a6a22033e3ebb4d6c7243874d840558a9eb7216^..6b8645bf584a04b45828c7e8d0fb19418db70d2e`, aggregate carrier `fed5c80d7e94bd2c8ab1f7ddac8ab205d993156d`. The carrier folds the two upstream commits, retains JSON2 DDL/layout settings, and omits the upstream-only >=v1.3.0 compatibility case; it is `adapted`. - **#8901**: upstream merge `b96ea86a621e7283e77e4e37dd4e3ec8dfc44f73`, head `b450abd46e473a07cb1b42a9c7c62d0b0d551e17`, complete upstream range `6e637fbe58f36643fea40f38d5ff352fe00254f9^..b450abd46e473a07cb1b42a9c7c62d0b0d551e17`, aggregate carrier `5a642091cd2b6185fbe6a08d6f76d8295955152f`. The carrier folds the three upstream commits and is `exact` by stable patch ID. -These are part of the 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Together with base-present #8672/#8699/#8921 and the three closure relationships (#8734 full, #8392 release-compatible slice, and #8751), the review contains 39 provenance relationships. +These are part of the 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Together with base-present #8672/#8699/#8921 and the four closure/follow-up relationships (#8734 full, #8392 release-compatible slice, #8751, and #8752), the review contains 40 provenance relationships. diff --git a/backport-review/v1.2-beta2/manual-deltas.md b/backport-review/v1.2-beta2/manual-deltas.md index ed7e7c41837..0cf3c31d931 100644 --- a/backport-review/v1.2-beta2/manual-deltas.md +++ b/backport-review/v1.2-beta2/manual-deltas.md @@ -76,14 +76,14 @@ The canonical reviewer index is [`decisions/README.md`](decisions/README.md). Th ### Other Query adaptations - #8659 differs because it is replayed on release protocol/server APIs. - #8898 is the dashboard version update only, adapted to the release file state. -- The 14 exact stable patch-ID relationships are #8777, #8832, #8787, #8849, #8859, #8889, #8833, #8600, #8808, #8709, #8522, #8739, #8772, and #8901. The remaining 21 verdicts are adapted, including the production-only partial #8751 carrier. +- The 14 exact stable patch-ID relationships are #8777, #8832, #8787, #8849, #8859, #8889, #8833, #8600, #8808, #8709, #8522, #8739, #8772, and #8901. The remaining 22 verdicts are adapted, including the production-only partial #8751 carrier and the test-only #8752 follow-up. ## Platform / Event ### #8825 — adapted - Upstream PR head: `bf947141753a9ea554aa1ca31637fdd3ad1429f3`; merge: `60c7bbcaf30a0e65ad7fa2b2b8ad0c1199a662b1`. - Requested by WenyXu in [Issue #8892 comment 5353700059](https://github.com/GreptimeTeam/greptimedb/issues/8892#issuecomment-5353700059). -- Aggregate carrier: `d18430b874f9c8054747dbf688585cd7d2988e3e`; final aggregate head: `6f150e01cd4221d4c62c5f7082f6d318b3110e00` (the pre-version carrier remains `40e02ff6b62ad3445f7035e437bd9e322c8af31b`). +- Aggregate carrier: `d18430b874f9c8054747dbf688585cd7d2988e3e`; final aggregate head: `cb52adcbf798d3d2f009874f46dc5d476073bd8c` (the pre-version carrier remains `40e02ff6b62ad3445f7035e437bd9e322c8af31b`). - Adds shared `common_base::protocol::Channel`, re-exports it as `session::context::Channel`, and retains stable wire values/names and `Unknown` behavior. Session dialect mapping remains through the `dialect_for_channel` helper; common-meta derives protocol names from shared `Channel`. - Semantic conflict resolution is explicit: shared mapping replaces `common_session::channel_protocol`, but the aggregate preserves the old-frontend fallback for omitted protobuf `event_context` and exactly-once protobuf → `PersistentEventContext` → `ProcedureEventInput` conversion. Actor/event JSON and protobuf schemas are unchanged. - Narrow test adaptations `9bf878f5` and `6595b5d7b` are retained and not reverted. @@ -153,7 +153,7 @@ The canonical reviewer index is [`decisions/README.md`](decisions/README.md). Th ## Final provenance scope -The final review records 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Of those, #8672, #8699, and #8921 are base-present. The dependency closure contributes exactly three additional relationships—full #8734, the release-compatible slice of #8392, and #8751—for 39 unique provenance relationships total. +The final review records 36 public Issue-requested PR relationships: the original 31 plus #8825, #8921, #8895, #8901, and #8902. Of those, #8672, #8699, and #8921 are base-present. The dependency closure/follow-up contributes exactly four additional relationships—full #8734, the release-compatible slice of #8392, #8751, and test-only #8752—for 40 unique provenance relationships total. ### #8751 — adapted, dependency closure required by #8734 @@ -166,3 +166,9 @@ The final review records 36 public Issue-requested PR relationships: the origina ### Release and local verification evidence - Release run [32462587383](https://github.com/GreptimeTeam/greptimedb/actions/runs/32462587383) used the pre-#8751 head `81fd630955f16b9c45811539aa8434b47d5a875b`. Windows job `96713326607` failed in the composite Windows-artifact step; the overall run was later cancelled, so this is not final CI for the refreshed head and is not attributed to #8751 without further evidence. - Recorded local before/after results: Main before #8751 4/4 failed; Main after #8751 20/20 passed without retry, log SHA `fa9ae951fa78dce66c7b0aedc81cd172c9fc898445712162c616c99aeb7000d8`; common-meta after #8751 546/546 passed without retry, log SHA `84b54cdff1767a2c0e0683e59a955472eacabc769871c5d893940f07d932a79a`. + +### #8752 — adapted test-only secure_fs follow-up / dependency closure +- Upstream merge: `4e43c279ff29e9071394f85b90b874906115d29f`; aggregate carrier: `cb52adcbf798d3d2f009874f46dc5d476073bd8c`. +- This is the #8735/#8708 secure_fs behavior follow-up. The target parent lacks #8735 context, so the carrier is adapted to the release parent; the resulting `test_lister_skips_entry_removed_during_iteration` body matches final main and keeps the portable path assertion while gating `is_none()` to non-Windows. +- It is test-only and adds the 40th provenance relationship. Raw evidence: [`range-diffs/pr-8752.txt`](range-diffs/pr-8752.txt). +- Oracle: APPROVE. Focused Main 20/20 no-retry log SHA `fc831f2b2d51c79e8b1fbc6267e8fe8bac90d06c746e1136067e9bcbcbec40df`; fixer focused and full object-store 20/20 no-retry passes. No native Windows post-fix run yet; no final CI success claimed. Release run `32466550985`, Windows job `96725255397`, failed. diff --git a/backport-review/v1.2-beta2/patch-id-verdict.tsv b/backport-review/v1.2-beta2/patch-id-verdict.tsv index f9c26df3e31..420bbe19c4e 100644 --- a/backport-review/v1.2-beta2/patch-id-verdict.tsv +++ b/backport-review/v1.2-beta2/patch-id-verdict.tsv @@ -33,3 +33,4 @@ 8895 d7f1233f775d54380318d6ad9ff62504a7cbcff1 fed5c80d7e94bd2c8ab1f7ddac8ab205d993156d adapted e26d83fb1aab2ee25d7e9d74ba1c42a163507c0d ba5de162f5dd269aa0081d8d97492c578fc37d05 8901 b96ea86a621e7283e77e4e37dd4e3ec8dfc44f73 5a642091cd2b6185fbe6a08d6f76d8295955152f exact a1011136c44b4f6f2520683739fbd845257c0a0e a1011136c44b4f6f2520683739fbd845257c0a0e 8751 b70daafc77c87806afd00521c368545a60e5f574 6f150e01cd4221d4c62c5f7082f6d318b3110e00 adapted 4d065c99ef5f69e5a801dc261eb19a432748d760 1ef6788196f8233a3d2ab7183216271210049f9a +8752 4e43c279ff29e9071394f85b90b874906115d29f cb52adcbf798d3d2f009874f46dc5d476073bd8c adapted b035a8aaf23c7482a38a3129cba1792f29c69276 9c6c01e5a43cffd7e8a70bd96722c80703a1bea8 diff --git a/backport-review/v1.2-beta2/range-diffs/pr-8752.txt b/backport-review/v1.2-beta2/range-diffs/pr-8752.txt new file mode 100644 index 00000000000..3048bced2ae --- /dev/null +++ b/backport-review/v1.2-beta2/range-diffs/pr-8752.txt @@ -0,0 +1,39 @@ +1: 4e43c279f ! 1: cb52adcbf fix(object-store): fix unused import on Windows after #8735 (#8752) + @@ Metadata + Author: discord9 + + ## Commit message ## + - fix(object-store): fix unused import on Windows after #8735 (#8752) + + fix(object-store): make removed-entry lister test portable (#8752) + + - fix(object-store): make removed-entry lister test portable + - + - On Windows, DirEntry is a FindFirstFileW snapshot: file_type() and + - metadata() keep returning cached data after the file is removed, so + - read_list_entry() may yield the stale entry instead of None. The strong + - assertion is Unix-specific; keep the portable checks (call succeeds, + - path is correct) on all platforms and gate only the is_none() assertion. + - + - Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> + + (cherry picked from commit 4e43c279ff29e9071394f85b90b874906115d29f) + + Signed-off-by: discord9 + + ## src/object-store/src/secure_fs.rs ## + @@ src/object-store/src/secure_fs.rs: mod tests { + - // On Windows, `std::fs::DirEntry` is a snapshot taken by + - // `FindFirstFileW`: `file_type()` and `metadata()` keep returning the + - // cached data even after the file is removed, so `read_list_entry` + -- // cannot observe the deletion and returns `Some` instead of `None`. + -- // This test only applies to platforms where metadata is fetched from + -- // the live filesystem (e.g. Unix `lstat` returns `ENOENT` after + -- // removal, which `read_list_entry` turns into `None`). + -- #[cfg(not(windows))] + + assert!(operator.list("file/").await.unwrap().is_empty()); + + } + + + ++ // On Windows, `std::fs::DirEntry` is a snapshot taken by + ++ // `FindFirstFileW`: `file_type()` and `metadata()` keep returning the + ++ // cached data even after the file is removed, so `read_list_entry` + + // may return `Some` with the stale entry. On platforms where metadata + + // is fetched from the live filesystem (e.g. Unix `lstat` returns + + // `ENOENT` after removal), `read_list_entry` returns `None` instead. diff --git a/backport-review/v1.2-beta2/range-diffs/pr-8825.txt b/backport-review/v1.2-beta2/range-diffs/pr-8825.txt index 527d46d0931..67325a9cbb1 100644 --- a/backport-review/v1.2-beta2/range-diffs/pr-8825.txt +++ b/backport-review/v1.2-beta2/range-diffs/pr-8825.txt @@ -13,7 +13,7 @@ - Aggregate carrier: `d18430b874f9c8054747dbf688585cd7d2988e3e` - Aggregate carrier parent: `6595b5d7bf1f59587bf89676d420db7371cdc459` - Aggregate carrier link: [d18430b874f9c8054747dbf688585cd7d2988e3e](https://github.com/GreptimeTeam/greptimedb/commit/d18430b874f9c8054747dbf688585cd7d2988e3e) -- Aggregate final head: `6f150e01cd4221d4c62c5f7082f6d318b3110e00` (pre-version carrier: `40e02ff6b62ad3445f7035e437bd9e322c8af31b`) +- Aggregate final head: `cb52adcbf798d3d2f009874f46dc5d476073bd8c` (pre-version carrier: `40e02ff6b62ad3445f7035e437bd9e322c8af31b`) - Narrow release test adaptations retained before the carrier: `9bf878f562518d30a412138ad4244d7d8e7867e6`, `6595b5d7bf1f59587bf89676d420db7371cdc459`. ## Why no range-diff is recorded diff --git a/backport-review/v1.2-beta2/upstream-pr-map.tsv b/backport-review/v1.2-beta2/upstream-pr-map.tsv index 791a324ce3a..146b4824927 100644 --- a/backport-review/v1.2-beta2/upstream-pr-map.tsv +++ b/backport-review/v1.2-beta2/upstream-pr-map.tsv @@ -37,3 +37,4 @@ 8895 d7f1233f775d54380318d6ad9ff62504a7cbcff1 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8895 refactor(json2): support JSON2 storage layout settings in DDL 8901 b96ea86a621e7283e77e4e37dd4e3ec8dfc44f73 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8901 refactor(json2): add JSON2 v2 physical layout primitives 8751 b70daafc77c87806afd00521c368545a60e5f574 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8751 fix(meta): release region guards after drop rollback +8752 4e43c279ff29e9071394f85b90b874906115d29f MERGED https://github.com/GreptimeTeam/greptimedb/pull/8752 fix(object-store): fix unused import on Windows after #8735 (#8752)