1b3744a1da
test(perf): align GET attribution harness with backlog 2093 ( #6912 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 20:28:28 +00:00
9244eb36ed
test(e2e): route cluster volume endpoints through fault proxy ( #6909 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 20:17:16 +00:00
442298d5f7
test(ecstore): prove in-flight prefetch cancellation ( #6904 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 19:17:44 +00:00
be7d35d441
perf(get): release disk permits for buffered bodies ( #6906 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 19:10:26 +00:00
唐小鸭 and GitHub
ec1cd606d3
fix(replication): surface object-lock denied purges and back off heal retries ( #6900 )
2026-08-30 18:59:55 +00:00
16af688a7a
fix(rpc): reject unsigned v2 control mutations ( #6905 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 18:17:43 +00:00
唐小鸭 and GitHub
37b23a16da
fix(replication): verify replica integrity and default to plain signed payloads ( #6895 )
2026-08-31 01:43:45 +08:00
006e9b7d28
test(e2e): cover four-node four-drive cluster topology ( #6902 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 17:32:36 +00:00
d214c27583
perf(ecstore): consolidate non-inline read planning ( #6892 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 17:15:48 +00:00
GatewayJ and GitHub
8fd364a99c
feat(s3-tables): support object-backed table rename ( #6899 )
2026-08-31 00:30:49 +08:00
c2d8488728
docs(architecture): reconcile generation contract ( #6901 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-31 00:20:39 +08:00
唐小鸭 and GitHub
1370434f3a
fix(scanner): unblock quota usage baseline on never-converged sites ( #6896 )
2026-08-31 00:20:04 +08:00
唐小鸭 and GitHub
5dde2c188c
fix(replication): retry failed multipart aborts on bounded backoff ( #6897 )
2026-08-31 00:19:49 +08:00
2f9c75d04f
perf(ecstore): reuse prepared metadata across pools ( #6889 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 16:15:10 +00:00
唐小鸭 and GitHub
9ee7b1221d
fix(admin): replicate user secret-key rotation to peer sites ( #6893 )
2026-08-30 23:32:07 +08:00
Zhengchao An and GitHub
fcc3c7fb6b
test(s3): promote passing compatibility cases ( #6891 )
2026-08-30 21:56:17 +08:00
Zhengchao An and GitHub
01dc55ee5b
docs(security): add unsigned presign header lesson ( #6894 )
2026-08-30 21:55:47 +08:00
3d24526704
fix(ecstore): preserve parity reserves for data-only GET ( #6888 )
...
fix(ecstore): hedge data-only GET with parity
Route the opt-in data-shards-only lockstep path through the bounded parity race and preserve deferred parity reserves across canceled hedges.
Co-authored-by: heihutu <[email protected] >
2026-08-30 20:16:32 +08:00
51532e19fb
test(ecstore): cover multipart snapshot overwrite race ( #6887 )
...
test(ecstore): cover multipart GET overwrite snapshot
Co-authored-by: heihutu <[email protected] >
2026-08-30 12:15:02 +00:00
931ff60182
test(ci): refresh cluster nightly selection ( #6886 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 12:10:07 +00:00
07212c4e26
perf(ecstore): gate quorum-aware GET early stop ( #6885 )
...
* perf(ecstore): add gated two-phase GET metadata reads
Co-Authored-By: heihutu <[email protected] >
* fix(ecstore): require data-shard coverage for read plans
Co-Authored-By: heihutu <[email protected] >
* perf(ecstore): avoid inline overhead in read plan rollout
Co-Authored-By: heihutu <[email protected] >
* perf(ecstore): accept quorum-complete read candidates
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-08-30 09:33:35 +00:00
GatewayJ and GitHub
4932af080b
feat(s3select): expand typed JSON source paths ( #6864 )
2026-08-30 06:46:36 +00:00
GatewayJ and GitHub
d6f9a7c462
feat(table-catalog): vend credentials from LoadTable ( #6878 )
...
* feat(table-catalog): vend credentials from LoadTable
* fix(table-catalog): preserve entry-relative metadata paths
2026-08-30 06:33:28 +00:00
7345b49cf6
perf(ecstore): gate GET metadata timing when metrics off ( #6879 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-30 05:43:08 +00:00
houseme and GitHub
4753e35035
chore(deps): update flake.lock ( #6880 )
2026-08-30 13:14:13 +08:00
GatewayJ and GitHub
96239fc034
feat(s3select): report uncompressed input byte metrics ( #6865 )
2026-08-30 04:07:20 +00:00
hector and GitHub
b428875bed
fix(ci): stabilize tier MQTT bootstrap on shared runner ( #6877 )
...
* fix(ci): isolate s3 compat temp file paths
* fix(ci): use rooted auto-testing s3 temp fix
* fix(ci): follow auto-testing main after temp-path merge
* fix(ci): stabilize tier mqtt bootstrap on shared runner
2026-08-30 11:14:28 +08:00
Zhengchao An and GitHub
cf362282f0
fix(test): serialize transition matrix tests under nextest ( #6874 )
...
The transition_matrix_tests use #[serial_test::serial] which has no
effect under nextest (each test runs in a separate process). When running
alongside thousands of other ecstore tests, the shared metadata cache
generation counter can race, causing intermittent 'metadata read should
publish the generation under test' panics.
Add both tests to the ecstore-serial-flaky test group in both default
and ci nextest profiles so they run single-threaded.
2026-08-30 10:42:23 +08:00
Zhengchao An and GitHub
b2a2e637a5
fix(ci): refresh Linux full E2E selection ( #6875 )
2026-08-30 10:42:14 +08:00
cxymds and GitHub
0c18012442
fix(admin): version remote target credential capabilities ( #6876 )
2026-08-30 10:42:10 +08:00
ee39e4fccb
fix(scanner): own publication mutations through storage drain ( #6867 )
...
* fix(scanner): own publication mutations through storage drain
Co-Authored-By: heihutu <[email protected] >
* fix(storage): remove unused rename data shim
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-08-30 02:39:07 +00:00
90ab2e24c3
perf(ecstore): reuse local fd metadata snapshots ( #6868 )
...
* perf(ecstore): reuse local fd metadata snapshots
Cache the validated shard length beside each reusable descriptor so read hits avoid a repeated fstat while retaining generation and mutation invalidation semantics.
Co-Authored-By: heihutu <[email protected] >
* fix(ecstore): pass cached entry to fd cache
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-08-30 09:08:44 +08:00
cxymds and GitHub
21e5b3dc64
fix(ecstore): require durable decommission ledger format ( #6871 )
2026-08-30 08:47:09 +08:00
cxymds and GitHub
1e8c8d4cd5
feat(replication): support temporary target credentials ( #6860 )
2026-08-30 08:44:34 +08:00
ff3ad30f0c
fix(scanner): bound publication proof retries on main ( #6870 )
...
* fix(scanner): retain completed publication candidates
* fix(scanner): export publication activity helper
* test(ecstore): retain activity snapshot across retries
* fix(scanner): rebase publication proof retry onto main
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): resolve publication proof retry conflicts
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: Henry Guo <[email protected] >
Co-authored-by: heihutu <[email protected] >
2026-08-29 22:41:36 +00:00
47a3f5ef01
perf(ecstore): converge disk metric atomic loads ( #6866 )
...
Use the seqlock version as the publication fence and keep payload reads relaxed while validating the final version. This reduces ordering overhead in disk metric recording and snapshot collection without changing the rolling-window contract.
Co-authored-by: heihutu <[email protected] >
2026-08-29 20:38:59 +00:00
a22fa7461d
perf(put): adapt eager threshold to concurrency ( #6863 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-29 20:21:05 +00:00
814ab5bbf3
fix(ecstore): classify system metadata failures ( #6862 )
...
fix(ecstore): classify system metadata volume failures
Preserve retryable quorum errors when system metadata reads or writes encounter missing volumes, and cover the create-bucket data-usage path with regressions.
Co-authored-by: heihutu <[email protected] >
2026-08-29 19:48:50 +00:00
498205b7ec
fix(ecstore): keep 1MiB GET off mid-size reader ( #6861 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-29 19:39:51 +00:00
c235f7c05d
fix(scanner): retain usage across transient peer failures ( #6859 )
...
* test(scanner): cover bucket drive guard lifecycle
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): recover usage floor from fenced backups
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): retry transient activity probes
Retry one failed scanner activity probe after a bounded reconnect when the failure is transport-like or timed out. Keep protocol and response validation failures fail-closed.
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): retain post-scan observations
Preserve a complete scanner walk as a non-converged observation when the final activity probe is unavailable. Advance the cycle as partial without acknowledging dirty usage.\n\nCo-Authored-By: heihutu <[email protected] >
* fix(scanner): classify publication lease deferrals
Distinguish persistence budget and lease deadline deferrals from unavailable activity baselines, and ensure lease-gate deferrals update usage metrics. Keep the fixed lease gate fail-closed while storage-owned commit scope work remains pending.
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): recover usage floor from fenced backups
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): preserve publication lease defer reasons
Keep lease expiry and release failures distinct from activity baseline failures so scanner freshness metrics and cycle outcomes identify the publication barrier that blocked progress. Preserve fail-closed behavior.
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): reuse recovered usage baseline for publication
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): fence legacy usage floor fallback
Co-Authored-By: heihutu <[email protected] >
* fix(scanner): use typed activity timeout error
---------
Co-authored-by: heihutu <[email protected] >
2026-08-30 02:54:20 +08:00
cxymds and GitHub
64cca79fbb
feat(admin): expose remote target credential capability state ( #6857 )
2026-08-30 00:42:14 +08:00
759e1041bd
feat(nix): add NixOS service module and client package ( #6856 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-29 16:14:44 +00:00
GatewayJ and GitHub
8055aeb1d4
test(s3select): cover SelectRequest XML root alias ( #6820 )
2026-08-29 14:14:12 +00:00
GatewayJ and GitHub
79bd6fa862
fix(s3select): return encryption response headers ( #6819 )
2026-08-29 19:46:34 +08:00
fa0be5d271
fix(ci): split workflows and add perf version reporting ( #6848 )
...
* ci: pass package selector to test run steps (fix rc.3 fallback)
* fix(ci): split workflows and add perf version reporting
* fix(ci): enforce strict shared workflow order
---------
Signed-off-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
2026-08-29 19:32:19 +08:00
78cb142c91
fix(s3): accept empty put without content length ( #6849 )
...
Co-authored-by: heihutu <[email protected] >
2026-08-29 19:31:33 +08:00
hector and GitHub
5fa3d2a682
ci: pass package selector to test run steps (fix rc.3 fallback) ( #6846 )
2026-08-29 17:34:04 +08:00
hector and GitHub
fd8ddf0a02
fix: remove redundant --repo flag in preview release cleanup ( #6847 )
...
The check_preview_release_workflow.sh script uses exact line matching
(grep -Fxq) to verify the cleanup-preview-releases job contains:
gh release delete "$preview_tag" --yes
The extra --repo flag is unnecessary in GitHub Actions context since
gh auto-detects the repository from GITHUB_REPOSITORY, and it causes
the Workflow Pin Report check to fail on all PRs.
2026-08-29 17:33:34 +08:00
Zhengchao An and GitHub
e1ea99ff06
fix(s3): return BadDigest for Content-MD5 mismatch ( #6842 )
2026-08-29 09:00:18 +00:00
唐小鸭 and GitHub
11c6ee42ea
fix(kms): restore persisted configuration after restart ( #6821 )
...
* fix(kms): restore persisted configuration after restart
* docs(kms): cover the reload route and startup load states
The admin contract matrix pins every dynamic KMS route for the rc and
console handoff, so the new POST /kms/reload needs a row there, and the
reload response reuses the configure snapshot shape rather than adding a
wire type. The observability runbook gains the operator procedure the
reload exists for: telling a load_failed startup apart from a server
that was never configured, and recovering without resubmitting secrets.
2026-08-29 16:21:22 +08:00