mirror of
https://github.com/pgsty/minio.git
synced 2026-10-06 01:35:57 +03:00
docs: record R4-R8 integration review and validation
Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
ok github.com/minio/minio/cmd 320.458s
|
||||
ok github.com/minio/minio/internal/amztime 1.605s
|
||||
ok github.com/minio/minio/internal/arn 0.392s
|
||||
ok github.com/minio/minio/internal/auth 0.440s
|
||||
ok github.com/minio/minio/internal/bpool 0.422s
|
||||
ok github.com/minio/minio/internal/bucket/bandwidth 0.450s
|
||||
ok github.com/minio/minio/internal/bucket/cors 0.484s
|
||||
ok github.com/minio/minio/internal/bucket/encryption 0.644s
|
||||
ok github.com/minio/minio/internal/bucket/lifecycle 0.647s
|
||||
ok github.com/minio/minio/internal/bucket/object/lock 0.653s
|
||||
ok github.com/minio/minio/internal/bucket/replication 0.496s
|
||||
ok github.com/minio/minio/internal/bucket/versioning 0.449s
|
||||
ok github.com/minio/minio/internal/cachevalue 5.457s
|
||||
? github.com/minio/minio/internal/color [no test files]
|
||||
ok github.com/minio/minio/internal/config 0.656s
|
||||
? github.com/minio/minio/internal/config/api [no test files]
|
||||
? github.com/minio/minio/internal/config/batch [no test files]
|
||||
? github.com/minio/minio/internal/config/browser [no test files]
|
||||
? github.com/minio/minio/internal/config/callhome [no test files]
|
||||
ok github.com/minio/minio/internal/config/compress 0.624s
|
||||
ok github.com/minio/minio/internal/config/dns 0.731s
|
||||
? github.com/minio/minio/internal/config/drive [no test files]
|
||||
ok github.com/minio/minio/internal/config/etcd 1.015s
|
||||
? github.com/minio/minio/internal/config/heal [no test files]
|
||||
ok github.com/minio/minio/internal/config/identity/ldap 0.593s
|
||||
ok github.com/minio/minio/internal/config/identity/openid 0.675s
|
||||
? github.com/minio/minio/internal/config/identity/openid/provider [no test files]
|
||||
? github.com/minio/minio/internal/config/identity/plugin [no test files]
|
||||
? github.com/minio/minio/internal/config/identity/tls [no test files]
|
||||
ok github.com/minio/minio/internal/config/ilm 1.057s
|
||||
? github.com/minio/minio/internal/config/lambda [no test files]
|
||||
ok github.com/minio/minio/internal/config/lambda/event 0.485s
|
||||
? github.com/minio/minio/internal/config/lambda/target [no test files]
|
||||
ok github.com/minio/minio/internal/config/notify 0.752s
|
||||
? github.com/minio/minio/internal/config/policy/opa [no test files]
|
||||
? github.com/minio/minio/internal/config/policy/plugin [no test files]
|
||||
? github.com/minio/minio/internal/config/scanner [no test files]
|
||||
ok github.com/minio/minio/internal/config/storageclass 0.585s
|
||||
ok github.com/minio/minio/internal/config/subnet 0.582s
|
||||
ok github.com/minio/minio/internal/crypto 0.843s
|
||||
ok github.com/minio/minio/internal/deadlineconn 4.934s
|
||||
ok github.com/minio/minio/internal/disk 0.418s
|
||||
ok github.com/minio/minio/internal/dsync 131.144s
|
||||
ok github.com/minio/minio/internal/etag 0.504s
|
||||
ok github.com/minio/minio/internal/event 0.595s
|
||||
ok github.com/minio/minio/internal/event/target 0.957s
|
||||
ok github.com/minio/minio/internal/grid 7.616s
|
||||
ok github.com/minio/minio/internal/handlers 0.717s
|
||||
ok github.com/minio/minio/internal/hash 0.700s
|
||||
? github.com/minio/minio/internal/hash/sha256 [no test files]
|
||||
ok github.com/minio/minio/internal/http 13.643s
|
||||
? github.com/minio/minio/internal/init [no test files]
|
||||
ok github.com/minio/minio/internal/ioutil 1.921s
|
||||
ok github.com/minio/minio/internal/jwt 0.423s
|
||||
ok github.com/minio/minio/internal/kms 0.538s
|
||||
ok github.com/minio/minio/internal/lock 1.077s
|
||||
ok github.com/minio/minio/internal/logger 0.546s
|
||||
? github.com/minio/minio/internal/logger/message/audit [no test files]
|
||||
? github.com/minio/minio/internal/logger/target/console [no test files]
|
||||
? github.com/minio/minio/internal/logger/target/http [no test files]
|
||||
? github.com/minio/minio/internal/logger/target/kafka [no test files]
|
||||
? github.com/minio/minio/internal/logger/target/loggertypes [no test files]
|
||||
? github.com/minio/minio/internal/logger/target/testlogger [no test files]
|
||||
ok github.com/minio/minio/internal/lsync 10.501s
|
||||
? github.com/minio/minio/internal/mcontext [no test files]
|
||||
? github.com/minio/minio/internal/mountinfo [no test files]
|
||||
? github.com/minio/minio/internal/net [no test files]
|
||||
? github.com/minio/minio/internal/once [no test files]
|
||||
ok github.com/minio/minio/internal/pubsub 0.511s
|
||||
ok github.com/minio/minio/internal/rest 0.525s
|
||||
ok github.com/minio/minio/internal/ringbuffer 1.316s
|
||||
ok github.com/minio/minio/internal/s3select 0.603s
|
||||
ok github.com/minio/minio/internal/s3select/csv 0.446s
|
||||
ok github.com/minio/minio/internal/s3select/json 0.439s
|
||||
ok github.com/minio/minio/internal/s3select/jstream 0.417s
|
||||
? github.com/minio/minio/internal/s3select/parquet [no test files]
|
||||
? github.com/minio/minio/internal/s3select/simdj [no test files]
|
||||
ok github.com/minio/minio/internal/s3select/sql 0.425s
|
||||
ok github.com/minio/minio/internal/store 1.451s
|
||||
@@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"file": "cmd/replication-delete-mrf_test.go",
|
||||
"before_sha256": "5e160f7e19cbbb8cd5fa4e7ffd9cff9e09361b3fc4c5ee5ae61458f99c777781",
|
||||
"after_sha256": "6fcfaf505d28f98e42dff9c0d965895be2c2d112e9e996220d424aea1f76d691",
|
||||
"body_sha256": "5b3cecec74273540f4a5f82ca55e8a28545d0252822af3568f7e36b19011bda8",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
},
|
||||
{
|
||||
"file": "cmd/replication-delete-operation_test.go",
|
||||
"before_sha256": "2888a04a543324776041316de2821f388d28c3c1a6f5d0031e5ac9d34f58d504",
|
||||
"after_sha256": "2e674cab5ca4dbc38cb2c1ddcca117269276e6419e1869c154c3bd6a05676715",
|
||||
"body_sha256": "7921af42a9f123450e3e567d0bf65cd030678404709c77fde4a9cbb366230c35",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
},
|
||||
{
|
||||
"file": "cmd/server_deadline_config_test.go",
|
||||
"before_sha256": "1013157f83baa5f7882ec2d41c7b1fccb9e05fb418d0fa61263953037c9698c4",
|
||||
"after_sha256": "a8259d273922a8973b44d9a468791761d373fe265fff8b2b53871e4626b11405",
|
||||
"body_sha256": "5714a9275aee7230d54ba8ed03e3705a3cf6e150bda122929a9131b4b2b8dd5c",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
},
|
||||
{
|
||||
"file": "internal/deadlineconn/deadlineconn_strict_test.go",
|
||||
"before_sha256": "f405690c9ff044595f48323d68f4a9b33ce695b3ad6820f54f17151067bfae5e",
|
||||
"after_sha256": "b4aec28c5daddb36e6ebb98dd8af2a44b7a2c48f0660068534f69669609f67a7",
|
||||
"body_sha256": "ab2b54e29ed34de6e59ba2fa4984d61ed5f93d74ae4f6cd22dd44ba77a37e569",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
},
|
||||
{
|
||||
"file": "internal/http/dial_deadline_linux_test.go",
|
||||
"before_sha256": "0939d05b72a09760d53fcdf249775989e3f89bca824b9961d0b2a657ebfdf41e",
|
||||
"after_sha256": "c4c83bda92ba9bac53166453920456134b3d8265cd59101b4203067c67eca59e",
|
||||
"body_sha256": "fac091ef08f29fe32c2668eccd8cd505106c9fe3c4715e4c3ed9063d4b71c86e",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
},
|
||||
{
|
||||
"file": "internal/http/server_deadline_test.go",
|
||||
"before_sha256": "a6e687b3904a876fa92a4c5b86453159f3e5a38a4b9412dc213c7772f47fbf0b",
|
||||
"after_sha256": "87303cc389bf1cf759898489f06b001073de2dd9c4b3687c4eca14aa186b62ab",
|
||||
"body_sha256": "20b238f34090c356b2254388e863d77d0a316f33b849291d15d94fad260f23dd",
|
||||
"body_identical": true,
|
||||
"build_prefix_preserved": true
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"head": "80684fed59f556d579e268c5a855d936c1347b68",
|
||||
"checks": {
|
||||
"r6_shared_file_patch": true,
|
||||
"r5_shared_file_patch": true,
|
||||
"cmd/erasure-object.go": true,
|
||||
"cmd/erasure-server-pool-consistency.go": true,
|
||||
"cmd/erasure-server-pool.go": true,
|
||||
"cmd/object-handlers-common.go": true,
|
||||
"cmd/object-handlers.go": true,
|
||||
"cmd/object-multipart-handlers.go": true,
|
||||
"cmd/replication-tagging-order_test.go": true,
|
||||
"cmd/replication-tagging-sender_test.go": true,
|
||||
"cmd/bucket-replication-utils.go": true,
|
||||
"cmd/replication-delete-marker_test.go": true,
|
||||
"cmd/replication-delete-operation_test.go": true,
|
||||
"cmd/replication-delete-mrf_test.go": true,
|
||||
"cmd/common-main.go": true,
|
||||
"cmd/server-main.go": true,
|
||||
"internal/deadlineconn/deadlineconn.go": true,
|
||||
"internal/http/listener.go": true,
|
||||
"internal/http/server.go": true,
|
||||
"cmd/server_deadline_config_test.go": true,
|
||||
"internal/deadlineconn/deadlineconn_strict_test.go": true,
|
||||
"internal/http/dial_deadline_linux_test.go": true,
|
||||
"internal/http/server_deadline_test.go": true,
|
||||
"only_reviewed_hygiene_changes": true,
|
||||
"dco:80684fed59f556d579e268c5a855d936c1347b68": true,
|
||||
"dco:055030ea53ca92ee22ce1e601ef4757c247edde8": true,
|
||||
"dco:aea3882c95d16ec5598a07b40d593e04054137a9": true,
|
||||
"dco:0c61128d23f05ce6b37e7ace713c3ffbfb68f4cb": true,
|
||||
"dco:680eac66e40b0980bc20e70d7ad34185096e63f5": true
|
||||
},
|
||||
"all_pass": true
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
ok github.com/minio/minio/cmd 1.583s
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"command": [
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"2",
|
||||
"./cmd",
|
||||
"-run",
|
||||
"^TestAPIPoolsTaggingReplicaDeletion$",
|
||||
"-count=1",
|
||||
"-timeout=2m"
|
||||
],
|
||||
"exit_code": 0,
|
||||
"seconds": 5.096,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/isolated-pools-before.log",
|
||||
"log_sha256": "f014a1a72dda7b973cd1e0b7e77c70b470eeebca0d04805d98f07c2622c87b1e"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Checking dependencies
|
||||
Building Silo binary to './silo'
|
||||
@@ -0,0 +1,7 @@
|
||||
Running lint check
|
||||
0 issues.
|
||||
typos binary is not found.. skipping..
|
||||
compatibility manifest: imports=119 env=428 metrics=19 headers=87 routes=224 roots=1 grid=3 storage=16 policy=59 brand=181 sha256=ad05829578cf879b462a12fa65f3c10c8c7c6aa8d6c329e04779459eec2645be
|
||||
Silo rebrand compatibility baseline is unchanged
|
||||
Silo delivery and runtime rebrand checks passed
|
||||
docker entrypoint argv compatibility tests passed
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"candidate": "055030ea53ca92ee22ce1e601ef4757c247edde8",
|
||||
"base": "9f3037e941a49ab4cd8a0eed7c0f01083fbe4bbe",
|
||||
"requested_model": "claude-opus-5",
|
||||
"requested_effort": "max",
|
||||
"cli_version": "2.1.270",
|
||||
"command": [
|
||||
"/opt/homebrew/bin/claude",
|
||||
"--print",
|
||||
"--model",
|
||||
"claude-opus-5",
|
||||
"--effort",
|
||||
"max",
|
||||
"--safe-mode",
|
||||
"--permission-mode",
|
||||
"plan",
|
||||
"--tools",
|
||||
"Read,Grep,Glob",
|
||||
"--strict-mcp-config",
|
||||
"--no-session-persistence",
|
||||
"--add-dir",
|
||||
"/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab",
|
||||
"--add-dir",
|
||||
"/Users/vonng/pgsty/silo",
|
||||
"--output-format",
|
||||
"stream-json",
|
||||
"--verbose"
|
||||
],
|
||||
"source_sha256": {
|
||||
"cmd/bucket-replication-utils.go": "365641c760901641e8320cc5123697ab92a46f1add612048b991ed2d1cfad43b",
|
||||
"cmd/bucket-replication.go": "2e766c5946dcabaea79455b50a8e426f404e55c92dcbccbe28d55906e2e43843",
|
||||
"cmd/common-main.go": "f8777fe8a07d175aceee07b4dd13792b2384449c404c004c38a06893be997843",
|
||||
"cmd/erasure-object.go": "4bc848685ea714d88cabbd5d1b8585fbcc06f7b19c775e1a811030e783d0e1a4",
|
||||
"cmd/erasure-server-pool-consistency.go": "d2736ef6bffbb5c5758eba8df38f8d4ecb888a838ab0de8ad3cf015c051f8ad7",
|
||||
"cmd/erasure-server-pool.go": "87ad0b25dfa3081d0e63d0073b788614a9c88e2498a2ce0956b93f8a0a03ef53",
|
||||
"cmd/object-handlers-common.go": "101bd7d7447072d13fed50983b69b562e4725632645e623d7fdd490f388ecdec",
|
||||
"cmd/object-handlers.go": "61897a260f3f5f660f41edcb50956c60e914ef98f9a987da824f16d78171fde2",
|
||||
"cmd/object-multipart-handlers.go": "d9622c69c540ab32dd23916e3f534b6886473a98370c9dd17673e69a423b2a7e",
|
||||
"cmd/replication-delete-marker_test.go": "d967787804d558ac6266b113228fdf4a4f9fcb7cab39138a4fb07558814ccca4",
|
||||
"cmd/replication-delete-mrf_test.go": "5e160f7e19cbbb8cd5fa4e7ffd9cff9e09361b3fc4c5ee5ae61458f99c777781",
|
||||
"cmd/replication-delete-operation_test.go": "2888a04a543324776041316de2821f388d28c3c1a6f5d0031e5ac9d34f58d504",
|
||||
"cmd/replication-tagging-order_test.go": "c8260b4ccf82fa615e1e24b35a07f2d1aacbcf776e5c6f9dadffea4a09ad6ea8",
|
||||
"cmd/replication-tagging-sender_test.go": "3770a1a48a6efe58fe8127e1e4fdf6bd7cf171e17db20f15222ea2f7b85db1af",
|
||||
"cmd/server-main.go": "04c265de211412ba0297396928096d7f2d971244a957a3126154846035263514",
|
||||
"cmd/server_deadline_config_test.go": "1013157f83baa5f7882ec2d41c7b1fccb9e05fb418d0fa61263953037c9698c4",
|
||||
"internal/deadlineconn/deadlineconn.go": "b9272ef640f1d4403b3d0af6cdbaba9186c51ad9a0226dfe449e8ef738e1ec4b",
|
||||
"internal/deadlineconn/deadlineconn_strict_test.go": "f405690c9ff044595f48323d68f4a9b33ce695b3ad6820f54f17151067bfae5e",
|
||||
"internal/http/dial_deadline_linux_test.go": "0939d05b72a09760d53fcdf249775989e3f89bca824b9961d0b2a657ebfdf41e",
|
||||
"internal/http/listener.go": "49628575367f6ab9b6986caf594726d74d370f7d2ac4eed582903600b6eb3fa2",
|
||||
"internal/http/server.go": "b7b0355f2781f8c5f7c77bc910cd4180cd3e5f22a87de41bd35ef119d36b4cdf",
|
||||
"internal/http/server_deadline_test.go": "a6e687b3904a876fa92a4c5b86453159f3e5a38a4b9412dc213c7772f47fbf0b"
|
||||
},
|
||||
"diff_sha256": "d8c4e60f9e4a5b1338f3e6e07b758b1bb279db80eec26847e3b35fde0d049485",
|
||||
"prompt_sha256": "f95edcf71afedceab190ff57bfbec812b06c8c18b5370d887131a760228c2b2c",
|
||||
"started_at": "2026-09-15T16:41:37.757693+00:00",
|
||||
"status": "completed",
|
||||
"exit_code": 0,
|
||||
"actual_models": [
|
||||
"claude-opus-5"
|
||||
],
|
||||
"finished_at": "2026-09-15T16:53:09.761932+00:00",
|
||||
"raw_sha256": "3e1a45ebdf3f4420fb05647bb383c00d0a86452a6c357a92679485c99d8f4eb3",
|
||||
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"result_subtype": "success",
|
||||
"is_error": false
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
Independently review the complete SILO R4-R8 integration candidate for a user-authorized merge to main. You are the real Claude Opus reviewer; provide your own conclusion from source inspection. Read-only: no edits, no GitHub actions, no test execution claims.
|
||||
|
||||
Exact candidate: 055030ea53ca92ee22ce1e601ef4757c247edde8; integration branch codex/merge-r4-r8. Base: 9f3037e941a49ab4cd8a0eed7c0f01083fbe4bbe, already contains separately reviewed and CI-accepted R4 (SSE-KMS tag timestamp) and R7 (replication metadata/aws-chunked). This candidate adds the final R5, R6, and R8 local repairs, cherry-picked without conflicts and with provenance/DCO preserved.
|
||||
|
||||
Read /Users/vonng/pgsty/silo/AGENTS.md and CONTRIBUTING.md. The maintained PGSTY stack is the release target; upstream MinIO compatibility is best effort. Read /Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/integration-code.diff and /Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/reviewed-source.json, then inspect complete relevant functions and tests in this worktree. Each repair already has real same-version Opus plan consensus: docs/investigations/r5/plan-v2.md and consensus.md; r6/plan-v3.md and consensus.md; r8/plan-v2.md and consensus.md. Prior implementation reviews and validation reports are supporting evidence, not substitutes for this integration review. The R6 v2 multi-target parser proof was disproved by a real storage counterexample and fixed only after v3 consensus; verify the final empty creation-update invariant.
|
||||
|
||||
Focus on concrete integration correctness:
|
||||
1. R5 tag revision persistence and empty/nonempty ordering through COPY, PUT, multipart, retries and source ACK, with R6 purge/MRF state writes and shared bucket-replication.go functions.
|
||||
2. R7 restores only six replication-specific fields. Verify tag values/timestamps remain handled correctly and aws-chunked is not reintroduced, including R4 KMS options.
|
||||
3. R6 marker creation versus canonical/legacy purge, all exits, per-target statistics, disk creation/replica metadata preservation, identity-checked marker 405 recovery, retry counts and bounded scanner fallback.
|
||||
4. R8 absolute request-header deadlines and CLI/env propagation, HTTP/1 streaming bodies, keep-alive/TLS/h2 boundaries, default DeadlineConn callers and effects on replication I/O.
|
||||
5. Full-package test global state, cleanup/initialization ordering and any compile/dependency conflicts that separate scoped tests would miss.
|
||||
|
||||
Current local make verifiers is running; full candidate runtime tests and actual PR CI are still pending. Do not label them as passed. The host previously had ENOSPC; it now has more than 700 GiB free, so standard full-package tests can run without capacity overlays. Historical reports accurately retain earlier environment limits and incomplete multi-process deployment acceptance.
|
||||
|
||||
Two new R6 and four new R8 test files have boilerplate copyright headers queued for repository-policy normalization, after confirming original authorship. They will be header-only changes with package-and-body byte equivalence checked; do not conflate them with production semantic edits. Any actual implementation blocker will be fixed and re-reviewed as needed.
|
||||
|
||||
Return GO_WITH_NONBLOCKING_NOTES or REQUEST_CHANGES, number of blocking findings, exact candidate identity and inspected scope. For each blocker give path/line, real triggering conditions, impact and smallest compatible correction. Clearly distinguish inherited out-of-scope limitations from newly introduced defects and required CI from optional further deployment tests. Do not invent a blocker merely from absence of production deployment. This request is main merge, not release/deploy.
|
||||
@@ -0,0 +1,49 @@
|
||||
The plan file can't be written (Write is disabled this session), so here is the complete review inline.
|
||||
|
||||
# SILO R4–R8 integration review — independent, source-only
|
||||
|
||||
**Verdict: GO_WITH_NONBLOCKING_NOTES — 0 blocking findings.**
|
||||
|
||||
**Candidate identity:** head `055030ea53ca92ee22ce1e601ef4757c247edde8`, branch `codex/merge-r4-r8`, base `9f3037e941a49ab4cd8a0eed7c0f01083fbe4bbe`, worktree `/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/silo`. Scope of this review is a **main merge**, not a release or deployment. I executed nothing — no tests, no builds; every statement below is from reading source.
|
||||
|
||||
**Inspected scope:** `integration-code.diff` in full (3367 lines) and all 22 files in `reviewed-source.json`, then the complete surrounding functions in the worktree: `cmd/bucket-replication.go` (`replicateDelete`, `replicateDeleteToTarget`, `replicateObject`, `replicateAll`, `putReplicationOpts`, `getReplicationAction`, `queueMRFHeal`, `queueReplicaDeleteTask`, `queueMRFSave`, `queueReplicationHeal`), `bucket-replication-utils.go`, `bucket-replication-stats.go`, `xl-storage-format-v2.go DeleteVersion`, `erasure-object.go`, `erasure-multipart.go`, `erasure-server-pool.go`, `erasure-server-pool-consistency.go`, `object-handlers.go`, `object-handlers-common.go`, `object-multipart-handlers.go`, `handler-utils.go`, `object-api-options.go`, `bucket-handlers.go`, `common-main.go`, `server-main.go`, `internal/http/{server,listener}.go`, `internal/deadlineconn/deadlineconn.go`, all six new test files plus the base tests they interact with, `Makefile`, `.golangci.yml`, `AGENTS.md`, `CONTRIBUTING.md`, and the r5/r6/r8 plan + consensus records. Cross-checked against Go 1.27.1 `net/http/server.go` and pinned `minio-go/v7 v7.3.1-0.20260910142817-60bd07042d49`.
|
||||
|
||||
## Independent confirmation of the key claims
|
||||
|
||||
**R6 final empty creation-update invariant (the disproved-v2 point).** The v2 proof fails exactly as recorded: `replStatusRegex` (`bucket-replication-utils.go:168`) matches `arn1=;arn2=;` yielding `{arn1: ";arn2="}` — non-empty — while single-target `arn1=;` does not match at all. The v3 fix at `bucket-replication.go:575-582` sets `ReplicationStatusInternal=""`, `Targets=nil`, `ReplicaStatus=""`; `CompositeReplicationStatus` (`bucket-replication-utils.go:356-379`) then returns empty via both the internal string and the replica fallback, so `xlMetaV2.DeleteVersion` (`xl-storage-format-v2.go:1396-1405`, `1438-1447`) skips the creation/replica write while still writing `VersionPurgeStatusKey` (`1406-1408`, `1448-1450`). `ReplicationTimeStamp` is therefore inert (consensus N5 holds). I also confirmed the counterexample's precondition independently: `erasure-object.go:2099-2105` leaves `deleteMarker=true` when the stored marker carries no purge status, which is what sets `fi.Deleted=true` and reaches the rewriting branch. COMPLETE purges still remove the version (`1379-1393`, `1457-1459`).
|
||||
|
||||
**R6 classification / all exits.** `isVersionPurge()` (`1954-1956`) parses as `VersionID != "" || (DeleteMarkerVersionID != "" && !VersionPurgeStatus().Empty())`. Every live producer emits only one shape (`object-handlers.go:3232-3248`, `bucket-replication.go:3362-3378`, `3814-3836`), and the dir-object `nullVersionID` re-add (`bucket-handlers.go:552-555`, `679-681`) classifies as a purge under both old and new code, so no wire-form change there. All exits of `replicateDeleteToTarget` select the purge field consistently, HEAD probing is creation-only, `ReplicationDeleteMarker` is false for purges. `purgeReplicationStatus` maps only the legacy `COMPLETE` spelling; `ReplicationStats.Update` (`bucket-replication-stats.go:179-237`) consumes the passed status and never `rinfo.ReplicationStatus`, with `ri.Size == 0` giving count-only/zero-byte deltas. The `ResetStatusesMap` nil guard fixes a genuine nil-map assignment panic, since `ObjectToDelete.ReplicationState()` never initialises that map.
|
||||
|
||||
**R6 MRF recovery / budget.** `queueMRFHeal:4118-4125` parses as `(err != nil && !validMarker) || oi.Name == ""`; `decodeDirObject` is identity for both `obj` and `dir/`, matching `GetObjectInfo`'s decoded name, and `erasure-server-pool-consistency.go:143-145` is what returns a populated marker `ObjectInfo` with `MethodNotAllowed`. `RetryCount int` matches the persisted `MRFReplicateEntry.RetryCount` and `QueueReplicationHeal`'s parameter — no on-disk format change. All three increment sites feed the existing `> mrfRetryLimit` drop accounting (`3926-3931`), and the scanner fallback restarts with a fresh budget.
|
||||
|
||||
**R5 tag revision flow.** Sender: `replicationTaggingTimestamp` (`804-812`) serves both the full retransmit and the metadata-COPY branch, the latter now failing closed symmetrically (`1720-1725`). `getCopyObjMetadata:765-766` always emits `X-Amz-Tagging` (possibly empty) + `REPLACE`; minio-go `copyObjectDo` forwards empty header values; the receiver's `getRequestHeaderOrQueryValue` (`handler-utils.go:160-171`) treats presence-with-empty-value as authoritative — so an ordered deletion is genuinely representable on the wire. Receiver: `CopyObjectHandler:1799-1840` captures the stored stamp before REPLACE rebuilds the map, every branch writes or deletes the key explicitly, and the unconditional `delete(encMetadata, …)` is safe *because* of that, blocking the SSE-C rotation snapshot (`1655-1659`) from re-merging at `1910`. `PutObjectHandler:2323-2325` and `NewMultipartUploadHandler:315-318` mutate the same map that becomes `opts.UserDefined` (`object-api-options.go:451`), and the header is parsed only under trusted replication (`388-396`). Ordering is re-applied under the write lock by the existing `reconcileStoredObjectTags` callers (`erasure-object.go:136-139`, `1312-1315`; `erasure-multipart.go:1161-1189`; `erasure-server-pool.go:1443-1456`) — which is also what keeps the base R4 KMS test's `missing-timestamp` expectation intact. Dropping the `ri.UserTags` re-injection in the source ACK (`1294-1304`) is right: `cleanMetadata` strips the tagging key from `UserDefined`, so stored tags are now left alone, and the pools path re-derives them from merged `UserTags`.
|
||||
|
||||
**R7 boundary.** `replicationToInternalHeaders` has exactly six entries (`handler-utils.go:106-114`); `extractReplicationMetadataFromMime` restores only those and re-extracts no ordinary metadata, so the `aws-chunked` normalisation in `extractMetadata:225-241` is not undone. R5 touches neither, and R4's KMS options (`object-api-options.go:449-460`) still carry the three replication timestamps unmodified.
|
||||
|
||||
**R8 deadlines.** Against Go 1.27.1: header window set at `server.go:2038`/`2177`, whole-request deadline unconditionally at `1103`, `StateActive` at `2056-2058` firing after *every* successful `readRequest` because `readRequest` calls `setInfiniteReadLimit()` at `1067`. That is the one place where the naive reading of the `c.r.remain` comment is wrong — the pipelined/fully-buffered request does get the strict→rolling flip, so consensus N2 is correct. `startBackgroundRead` (`741`) and `hijackLocked` zero the deadline, which `infReads` honours — that is why background reads and hijacked grid/websocket conns still work. The strict cap only shortens, never extends; zero/past semantics unchanged; `readExplicit`/`readDeadlineStrict` only touched under `mu`. The h2 skip is defensive rather than load-bearing (net/http uses `skipHooks` for ALPN h2; the h2 server zeroes the conn deadline), and a nil `raw` fails the type assertion safely. Strict mode is opt-in, so every other `DeadlineConn` caller — the optional Linux internode dialer (`dial_linux.go:126-131`, currently disabled at `server-main.go:422`) and all outbound replication transports — keeps legacy rolling reads. The real fix is propagation: flag, field and `UseReadHeaderTimeout` already existed; `ctxt.ReadHeaderTimeout` was simply never populated before `common-main.go:448`.
|
||||
|
||||
**Full-package test state.** No duplicate symbols (`tagTestCapacityDisk` defined once in base `erasure-server-pool-tags_test.go:258`); no helper collisions in `internal/http`; `testdata/config/1.yaml`, `fmtGenFlags`, `serverCmd.Flags` all exist; `buildServerCtxt` mutates no globals. Globals are swapped/restored, and `prepareFS`/`prepareErasure`/`initAPIHandlerTest` re-run `initAllSubsystems` between backends, so leaked target-sys entries can't cross a fixture boundary. `logger.UpdateAuditWebhooks(ctx, nil)` really clears the list (`targets.go:227-273`), so the audit fixture is re-enterable across the SD and Erasure passes. `make verifiers` = lint + check-gen + rebrand-guard, and `.golangci.yml` enables no header linter.
|
||||
|
||||
## Blocking findings
|
||||
|
||||
**None.**
|
||||
|
||||
## Non-blocking notes (newly introduced here)
|
||||
|
||||
1. `bucket-replication.go:804-812` — an unparseable stored tagging timestamp now fails replication for *untagged* objects too. Trigger: a corrupt/legacy value, or the empty value `erasure-server-pool-consistency.go:211-214` can persist when a non-primary pool holds a malformed stamp. Fail-closed (FAILED + MRF retry), never silent divergence. Optional hardening: treat missing-or-empty as absent, keeping the hard error for non-empty malformed values.
|
||||
2. `bucket-replication.go:1031-1036` — any version with a tag revision now resolves to `replicateMetadata` instead of `replicateNone`; since `object-handlers.go:1835-1836` gives every non-replica COPY a revision, large resyncs issue one extra metadata COPY per object. Steady state is unaffected (COMPLETED gate at `3810`). Accepted in r5 consensus; flagged as operational cost.
|
||||
3. `bucket-replication.go:435-445`, `551-566`, `1958-1964` — purge audit status changes from legacy `COMPLETE` to `COMPLETED`, and per-target purge outcomes now reach `globalReplicationStats` where the empty creation status previously recorded nothing. Intended (r6 dispositions 1–2); worth one release-note line for audit/metric consumers.
|
||||
4. `common-main.go:448` — now that `ReadHeaderTimeout` is populated it also participates in `net/http`'s `tlsHandshakeTimeout()` minimum. No change at defaults (30s vs 30s); a small configured header timeout also shortens the TLS handshake window. Documented in r8 consensus N1.
|
||||
5. `replication-tagging-order_test.go:1805-1814` — `TestAPIPoolsTaggingReplicaDeletion` calls `globalBucketMetadataSys.Update` after `consistencyPools`, which (unlike `initAPIHandlerTest`) does not run `initAllSubsystems`; run in isolation with `-run` it would nil-dereference. Harmless in full-package CI. Smallest fix: use `initAPIHandlerTest`, as the neighbouring consistency tests do.
|
||||
6. `replication-delete-mrf_test.go:1208-1215` — the audit cleanup cancels targets twice; non-panicking because `SafeClose(nil)` only prints a stack (`internal/ioutil/ioutil.go:463-471`), but it can add stderr noise.
|
||||
7. Headers (already queued, header-only): the two new R6 test files use `Copyright (c) 2026 PGSTY` + SPDX-only, and the four new R8 test files carry `Copyright (c) 2015-2021 MinIO, Inc.` despite being new original work; CONTRIBUTING.md asks new original files to name their actual holders with AGPL boilerplate (the two new R5 files already comply). No verifier enforces headers, so this does not gate CI and is distinct from production semantics.
|
||||
|
||||
## Inherited / out-of-scope limitations (not introduced by this candidate)
|
||||
|
||||
Purge-target subset merging under narrowed fan-out; nil/missing target clients cannot restore already-lost tracking; the `ResetStatusesMap` key asymmetry between `targetResetHeader(arn)` writes and bare-`arn` reads (`bucket-replication-utils.go:392-399` vs `419-426`) — the candidate only adds the panic-preventing nil guard; the shared `replStatusRegex` still mis-parses serialized empty statuses (R6 deliberately works around it at the write site); unqualified (no `versionId`) replica PUT has no stored-tag reconcile (`object-handlers.go:2442`); TLS handshake *write* deadlines keep rolling behaviour (r8 N9); historical objects without a revision, tag-filter target selection and real multi-site clock skew remain unsolved (r5 consensus).
|
||||
|
||||
## Verification still owed (I ran nothing; nothing below is "passed")
|
||||
|
||||
**Required for this merge — repository gates only:** `make verifiers` (lint, check-gen, rebrand-guard), `make build` producing `silo`, and full-package tests, at minimum `./cmd`, `./internal/http`, `./internal/deadlineconn`; a Linux CI leg to compile and run the build-tagged `TestInternodeDialReadDeadline`; DCO sign-off/authorship checks on the cherry-picked commits. With >700 GiB free, no capacity overlay is needed.
|
||||
|
||||
**Optional, explicitly not a merge gate:** `SILO_TEST_LONG_UPLOAD=1` (>30s default-idle transfer regressions), multi-process/multi-node deployment acceptance, cross-region replication mesh. Their absence is a coverage boundary, not a defect; I do not treat missing production deployment as a blocker.
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"binary": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/silo/silo",
|
||||
"binary_sha256": "1cc536f1a3c8d8372ff2d5b140b1fd2bc98a299324fea0f73f67288d48104ce4",
|
||||
"expected_rejection": true,
|
||||
"cases": [
|
||||
{
|
||||
"source": "flag",
|
||||
"header_timeout_ms": 100,
|
||||
"idle_timeout_ms": 2000,
|
||||
"header_completion_delay_ms": 400,
|
||||
"rejected": true,
|
||||
"status": "",
|
||||
"elapsed_seconds": 0.403,
|
||||
"still_alive": true
|
||||
},
|
||||
{
|
||||
"source": "environment",
|
||||
"header_timeout_ms": 100,
|
||||
"idle_timeout_ms": 2000,
|
||||
"header_completion_delay_ms": 400,
|
||||
"rejected": true,
|
||||
"status": "",
|
||||
"elapsed_seconds": 0.402,
|
||||
"still_alive": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"command": [
|
||||
"python3",
|
||||
"docs/investigations/r8/evidence/runtime_probe.py",
|
||||
"/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/silo/silo",
|
||||
"fixed",
|
||||
"/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/runtime-probe"
|
||||
],
|
||||
"exit_code": 0,
|
||||
"seconds": 1.638,
|
||||
"stdout_sha256": "e493d9757c130c2531072dc0eaee42b8fc1fa0f45fc43d0d0e098aac55f0d387"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
silo version DEVELOPMENT.2026-09-15T16-44-34Z (commit-id=80684fed59f556d579e268c5a855d936c1347b68)
|
||||
Runtime: go1.27.1 darwin/arm64
|
||||
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
|
||||
Copyright: 2015-2025 MinIO, Inc.
|
||||
Modifications: Copyright 2025-2026 PGSTY
|
||||
Source compatibility: based on MinIO technology
|
||||
@@ -0,0 +1,3 @@
|
||||
ok github.com/minio/minio/cmd 13.654s
|
||||
ok github.com/minio/minio/internal/deadlineconn 2.528s
|
||||
ok github.com/minio/minio/internal/http 14.301s
|
||||
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"head": "80684fed59f556d579e268c5a855d936c1347b68",
|
||||
"baseline": "9f3037e941a49ab4cd8a0eed7c0f01083fbe4bbe",
|
||||
"source_sha256": {
|
||||
"cmd/bucket-replication-utils.go": "365641c760901641e8320cc5123697ab92a46f1add612048b991ed2d1cfad43b",
|
||||
"cmd/bucket-replication.go": "2e766c5946dcabaea79455b50a8e426f404e55c92dcbccbe28d55906e2e43843",
|
||||
"cmd/common-main.go": "f8777fe8a07d175aceee07b4dd13792b2384449c404c004c38a06893be997843",
|
||||
"cmd/erasure-object.go": "4bc848685ea714d88cabbd5d1b8585fbcc06f7b19c775e1a811030e783d0e1a4",
|
||||
"cmd/erasure-server-pool-consistency.go": "d2736ef6bffbb5c5758eba8df38f8d4ecb888a838ab0de8ad3cf015c051f8ad7",
|
||||
"cmd/erasure-server-pool.go": "87ad0b25dfa3081d0e63d0073b788614a9c88e2498a2ce0956b93f8a0a03ef53",
|
||||
"cmd/object-handlers-common.go": "101bd7d7447072d13fed50983b69b562e4725632645e623d7fdd490f388ecdec",
|
||||
"cmd/object-handlers.go": "61897a260f3f5f660f41edcb50956c60e914ef98f9a987da824f16d78171fde2",
|
||||
"cmd/object-multipart-handlers.go": "d9622c69c540ab32dd23916e3f534b6886473a98370c9dd17673e69a423b2a7e",
|
||||
"cmd/replication-delete-marker_test.go": "d967787804d558ac6266b113228fdf4a4f9fcb7cab39138a4fb07558814ccca4",
|
||||
"cmd/replication-delete-mrf_test.go": "6fcfaf505d28f98e42dff9c0d965895be2c2d112e9e996220d424aea1f76d691",
|
||||
"cmd/replication-delete-operation_test.go": "2e674cab5ca4dbc38cb2c1ddcca117269276e6419e1869c154c3bd6a05676715",
|
||||
"cmd/replication-tagging-order_test.go": "c8260b4ccf82fa615e1e24b35a07f2d1aacbcf776e5c6f9dadffea4a09ad6ea8",
|
||||
"cmd/replication-tagging-sender_test.go": "3770a1a48a6efe58fe8127e1e4fdf6bd7cf171e17db20f15222ea2f7b85db1af",
|
||||
"cmd/server-main.go": "04c265de211412ba0297396928096d7f2d971244a957a3126154846035263514",
|
||||
"cmd/server_deadline_config_test.go": "a8259d273922a8973b44d9a468791761d373fe265fff8b2b53871e4626b11405",
|
||||
"internal/deadlineconn/deadlineconn.go": "b9272ef640f1d4403b3d0af6cdbaba9186c51ad9a0226dfe449e8ef738e1ec4b",
|
||||
"internal/deadlineconn/deadlineconn_strict_test.go": "b4aec28c5daddb36e6ebb98dd8af2a44b7a2c48f0660068534f69669609f67a7",
|
||||
"internal/http/dial_deadline_linux_test.go": "c4c83bda92ba9bac53166453920456134b3d8265cd59101b4203067c67eca59e",
|
||||
"internal/http/listener.go": "49628575367f6ab9b6986caf594726d74d370f7d2ac4eed582903600b6eb3fa2",
|
||||
"internal/http/server.go": "b7b0355f2781f8c5f7c77bc910cd4180cd3e5f22a87de41bd35ef119d36b4cdf",
|
||||
"internal/http/server_deadline_test.go": "87303cc389bf1cf759898489f06b001073de2dd9c4b3687c4eca14aa186b62ab"
|
||||
},
|
||||
"no_capacity_overlay": true,
|
||||
"race_test_selection": [
|
||||
"TestAPILocalTaggingAlwaysAdvancesRevision",
|
||||
"TestAPIPoolsTaggingReplicaDeletion",
|
||||
"TestAPITaggingMultipartCommitRechecksRevision",
|
||||
"TestAPITaggingReplicationOrdering",
|
||||
"TestAPITaggingReplicationOrderingKMS",
|
||||
"TestAPITaggingSSECRotationPreservesDeletionRevision",
|
||||
"TestAPITaggingUnqualifiedCopyOrdering",
|
||||
"TestConcurrentStrictReadDeadline",
|
||||
"TestDefaultReadDeadlineStillRenews",
|
||||
"TestInternodeDialReadDeadline",
|
||||
"TestLocalTaggingCommitCannotRegressRevision",
|
||||
"TestReplicateDeleteMarkerPurge",
|
||||
"TestReplicateDeleteMarkerTargetSemantics",
|
||||
"TestReplicateDeleteOperationExits",
|
||||
"TestReplicateDeletePurgeMissingTargetState",
|
||||
"TestReplicationDeleteQueueFullRetryBudget",
|
||||
"TestReplicationMRFMarkerRecovery",
|
||||
"TestServerBackgroundReadNoDeadline",
|
||||
"TestServerConnStateHook",
|
||||
"TestServerContinuousDownload",
|
||||
"TestServerContinuousUpload",
|
||||
"TestServerDefaultIdleLongDownload",
|
||||
"TestServerDefaultIdleLongUpload",
|
||||
"TestServerEarlyBodyClose",
|
||||
"TestServerHTTP2Deadlines",
|
||||
"TestServerHijackedDeadline",
|
||||
"TestServerIdleBodyDeadline",
|
||||
"TestServerKeepAliveDeadline",
|
||||
"TestServerPipelinedDeadline",
|
||||
"TestServerReadHeaderDeadline",
|
||||
"TestServerReadHeaderTimeoutConfig",
|
||||
"TestServerTLSHandshakeReadDeadline",
|
||||
"TestStrictExpiredFutureReadDeadline",
|
||||
"TestStrictReadDeadline",
|
||||
"TestStrictReadDeadlineRepeatedRenewal",
|
||||
"TestTaggingProductionCopyWireShape",
|
||||
"TestTaggingRepeatedValueNeedsRevisionDelivery",
|
||||
"TestTaggingReplicaContentDuplicateGuard",
|
||||
"TestTaggingReplicationSenderRetryAndAcknowledgment",
|
||||
"TestTaggingTimestampWire"
|
||||
],
|
||||
"started_at": "2026-09-15T16:45:09.640646+00:00",
|
||||
"checks": [
|
||||
{
|
||||
"name": "make-verifiers-final",
|
||||
"command": [
|
||||
"make",
|
||||
"verifiers",
|
||||
"GOLANGCI=/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/golangci-serial"
|
||||
],
|
||||
"env": {
|
||||
"GOMAXPROCS": "4",
|
||||
"GOFLAGS": "-p=2",
|
||||
"MINIO_API_REQUESTS_MAX": "10000"
|
||||
},
|
||||
"exit_code": 0,
|
||||
"seconds": 76.933,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/make-verifiers-final.log",
|
||||
"log_sha256": "54c906cff1d33d0148fbc4cac918c0785a3bcc8f7a4eb7e04a2f774c2f010bb4"
|
||||
},
|
||||
{
|
||||
"name": "make-build",
|
||||
"command": [
|
||||
"make",
|
||||
"build"
|
||||
],
|
||||
"env": {
|
||||
"GOMAXPROCS": "4",
|
||||
"GOFLAGS": "-p=2",
|
||||
"MINIO_API_REQUESTS_MAX": "10000"
|
||||
},
|
||||
"exit_code": 0,
|
||||
"seconds": 19.366,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/make-build.log",
|
||||
"log_sha256": "6ba9b545236be964861749c72e7609edf12b8f470df30d1ede8fd62f497e629b"
|
||||
},
|
||||
{
|
||||
"name": "silo-version",
|
||||
"command": [
|
||||
"./silo",
|
||||
"--version"
|
||||
],
|
||||
"env": {
|
||||
"GOMAXPROCS": "4",
|
||||
"GOFLAGS": "-p=2",
|
||||
"MINIO_API_REQUESTS_MAX": "10000"
|
||||
},
|
||||
"exit_code": 0,
|
||||
"seconds": 1.259,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/silo-version.log",
|
||||
"log_sha256": "ada27f2be570c33df5712e86782a7be2ce3acfef54c8bb22a9230db3606513af"
|
||||
},
|
||||
{
|
||||
"name": "full-tests",
|
||||
"command": [
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"2",
|
||||
"./cmd",
|
||||
"./internal/...",
|
||||
"-count=1",
|
||||
"-timeout=30m"
|
||||
],
|
||||
"env": {
|
||||
"GOMAXPROCS": "4",
|
||||
"GOFLAGS": "-p=2",
|
||||
"MINIO_API_REQUESTS_MAX": "10000",
|
||||
"CGO_ENABLED": "0"
|
||||
},
|
||||
"exit_code": 0,
|
||||
"seconds": 340.193,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/full-tests.log",
|
||||
"log_sha256": "24b986e2f5aef0e668116abaab5024bf19ac664aec010ca7aa5ef56886f47ad1"
|
||||
},
|
||||
{
|
||||
"name": "targeted-race",
|
||||
"command": [
|
||||
"go",
|
||||
"test",
|
||||
"-race",
|
||||
"-p",
|
||||
"2",
|
||||
"./cmd",
|
||||
"./internal/deadlineconn",
|
||||
"./internal/http",
|
||||
"-run",
|
||||
"^(TestAPILocalTaggingAlwaysAdvancesRevision|TestAPIPoolsTaggingReplicaDeletion|TestAPITaggingMultipartCommitRechecksRevision|TestAPITaggingReplicationOrdering|TestAPITaggingReplicationOrderingKMS|TestAPITaggingSSECRotationPreservesDeletionRevision|TestAPITaggingUnqualifiedCopyOrdering|TestConcurrentStrictReadDeadline|TestDefaultReadDeadlineStillRenews|TestInternodeDialReadDeadline|TestLocalTaggingCommitCannotRegressRevision|TestReplicateDeleteMarkerPurge|TestReplicateDeleteMarkerTargetSemantics|TestReplicateDeleteOperationExits|TestReplicateDeletePurgeMissingTargetState|TestReplicationDeleteQueueFullRetryBudget|TestReplicationMRFMarkerRecovery|TestServerBackgroundReadNoDeadline|TestServerConnStateHook|TestServerContinuousDownload|TestServerContinuousUpload|TestServerDefaultIdleLongDownload|TestServerDefaultIdleLongUpload|TestServerEarlyBodyClose|TestServerHTTP2Deadlines|TestServerHijackedDeadline|TestServerIdleBodyDeadline|TestServerKeepAliveDeadline|TestServerPipelinedDeadline|TestServerReadHeaderDeadline|TestServerReadHeaderTimeoutConfig|TestServerTLSHandshakeReadDeadline|TestStrictExpiredFutureReadDeadline|TestStrictReadDeadline|TestStrictReadDeadlineRepeatedRenewal|TestTaggingProductionCopyWireShape|TestTaggingRepeatedValueNeedsRevisionDelivery|TestTaggingReplicaContentDuplicateGuard|TestTaggingReplicationSenderRetryAndAcknowledgment|TestTaggingTimestampWire)$",
|
||||
"-count=1",
|
||||
"-timeout=15m"
|
||||
],
|
||||
"env": {
|
||||
"GOMAXPROCS": "4",
|
||||
"GOFLAGS": "-p=2",
|
||||
"MINIO_API_REQUESTS_MAX": "10000",
|
||||
"CGO_ENABLED": "1"
|
||||
},
|
||||
"exit_code": 0,
|
||||
"seconds": 46.286,
|
||||
"log": "/Users/vonng/tmp/silo-r4-r8-main-20260916-01a0a5ab/targeted-race.log",
|
||||
"log_sha256": "7d021e57e513ea81617df44a6253703622145bf5e72e6180de84c2bd3c7186d3"
|
||||
}
|
||||
],
|
||||
"source_unchanged": true,
|
||||
"finished_at": "2026-09-15T16:53:13.682876+00:00"
|
||||
}
|
||||
Reference in New Issue
Block a user