docs: record beta2 secure-fs test portability fix

Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
discord9
2026-08-21 18:10:58 +08:00
parent 73dc50ba23
commit 69a9448aae
12 changed files with 116 additions and 20 deletions
+16 -10
View File
@@ -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.
@@ -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)
1 424e53d8413719e348bc8a694d9d22d3a051ce68 6ffa27bc8e78b5e11b2db3d2a898438446b298be cf8d494dedfcfa5d486291bb05536dfeab4edb98 feat: make frontend heartbeat extensible and lifecycle-safe (#8726)
46 40e02ff6b62ad3445f7035e437bd9e322c8af31b d99b0df374eec0329ac3f430e40b80a1e6c6963c; 1a91c76c615afec71239b84af7787a0505bef914 (absorbed) 8c3fca20ce058fd569d436c38bc96e41fc1adbca fix(query): restore columnar group-by for dictionary-encoded tags
47 81fd630955f16b9c45811539aa8434b47d5a875b 9469fd7d7cb138515cd72d18861dd00b9dc2b74b chore: bump version to 1.2.0-beta.2
48 6f150e01cd4221d4c62c5f7082f6d318b3110e00 b70daafc77c87806afd00521c368545a60e5f574 1ef6788196f8233a3d2ab7183216271210049f9a fix(meta): release region guards after drop rollback (#8751)
49 cb52adcbf798d3d2f009874f46dc5d476073bd8c 4e43c279ff29e9071394f85b90b874906115d29f b035a8aaf23c7482a38a3129cba1792f29c69276 fix(object-store): make removed-entry lister test portable (#8752)
@@ -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)
1 424e53d8413719e348bc8a694d9d22d3a051ce68 feat: make frontend heartbeat extensible and lifecycle-safe (#8726)
46 40e02ff6b62ad3445f7035e437bd9e322c8af31b fix(query): restore columnar group-by for dictionary-encoded tags
47 81fd630955f16b9c45811539aa8434b47d5a875b chore: bump version to 1.2.0-beta.2
48 6f150e01cd4221d4c62c5f7082f6d318b3110e00 fix(meta): release region guards after drop rollback (#8751)
49 cb52adcbf798d3d2f009874f46dc5d476073bd8c fix(object-store): make removed-entry lister test portable (#8752)
+35
View File
@@ -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
+10 -4
View File
@@ -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
@@ -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
@@ -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.
+9 -3
View File
@@ -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.
@@ -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
1 8729 70470bafbe38df2d3fd21e70e1e7097ffd7317c6 c4baa56b23888fa2a2692b39ae01500d3f295efa adapted 4eb19a8cc40faa86c212e30ca3b1c693594c4e54 e7d70f590b6e541e520d0e5ffe2c6cacf6913c85
33 8895 d7f1233f775d54380318d6ad9ff62504a7cbcff1 fed5c80d7e94bd2c8ab1f7ddac8ab205d993156d adapted e26d83fb1aab2ee25d7e9d74ba1c42a163507c0d ba5de162f5dd269aa0081d8d97492c578fc37d05
34 8901 b96ea86a621e7283e77e4e37dd4e3ec8dfc44f73 5a642091cd2b6185fbe6a08d6f76d8295955152f exact a1011136c44b4f6f2520683739fbd845257c0a0e a1011136c44b4f6f2520683739fbd845257c0a0e
35 8751 b70daafc77c87806afd00521c368545a60e5f574 6f150e01cd4221d4c62c5f7082f6d318b3110e00 adapted 4d065c99ef5f69e5a801dc261eb19a432748d760 1ef6788196f8233a3d2ab7183216271210049f9a
36 8752 4e43c279ff29e9071394f85b90b874906115d29f cb52adcbf798d3d2f009874f46dc5d476073bd8c adapted b035a8aaf23c7482a38a3129cba1792f29c69276 9c6c01e5a43cffd7e8a70bd96722c80703a1bea8
@@ -0,0 +1,39 @@
1: 4e43c279f ! 1: cb52adcbf fix(object-store): fix unused import on Windows after #8735 (#8752)
@@ Metadata
Author: discord9 <discord9@163.com>
## 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 <discord9@163.com>
## 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.
@@ -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
@@ -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)
1 8729 70470bafbe38df2d3fd21e70e1e7097ffd7317c6 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8729 fix(flow): fix flow stats aggregation and df_plan_to_sql quoting
37 8895 d7f1233f775d54380318d6ad9ff62504a7cbcff1 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8895 refactor(json2): support JSON2 storage layout settings in DDL
38 8901 b96ea86a621e7283e77e4e37dd4e3ec8dfc44f73 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8901 refactor(json2): add JSON2 v2 physical layout primitives
39 8751 b70daafc77c87806afd00521c368545a60e5f574 MERGED https://github.com/GreptimeTeam/greptimedb/pull/8751 fix(meta): release region guards after drop rollback
40 8752 4e43c279ff29e9071394f85b90b874906115d29f MERGED https://github.com/GreptimeTeam/greptimedb/pull/8752 fix(object-store): fix unused import on Windows after #8735 (#8752)