Skip to content

Commit 0d78eb4

Browse files
committed
Add genuine cold RF3 upgrade qualification and prior image proof
1 parent df79b64 commit 0d78eb4

61 files changed

Lines changed: 5426 additions & 62 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,22 @@ jobs:
140140
- name: Build KeyLoad server and benchmark Docker images
141141
id: images
142142
run: node scripts/Features/BenchmarkComparisons/prepare-images.mjs
143+
- name: Build the genuine previous KeyLoad server image
144+
id: prior-images
145+
run: node scripts/Features/StorageRecovery/prepare-native5-server-image.mjs
143146
- name: Configure Docker image references
144147
shell: bash
145148
env:
146149
KEYLOAD_SERVER_IMAGE: ${{ steps.images.outputs.server-image }}
147150
KEYLOAD_RUNNER_IMAGE: ${{ steps.images.outputs.load-generator-image }}
151+
KEYLOAD_PRIOR_SERVER_IMAGE: ${{ steps.prior-images.outputs.prior-server-image }}
152+
KEYLOAD_PRIOR_IMAGE_RECEIPT: ${{ steps.prior-images.outputs.prior-image-receipt }}
153+
KEYLOAD_PRIOR_SERVER_MANIFEST: ${{ steps.prior-images.outputs.prior-server-manifest }}
148154
run: |
149155
test -n "$KEYLOAD_SERVER_IMAGE" && test -n "$KEYLOAD_RUNNER_IMAGE"
156+
test -n "$KEYLOAD_PRIOR_SERVER_IMAGE" && test -n "$KEYLOAD_PRIOR_IMAGE_RECEIPT" && test -n "$KEYLOAD_PRIOR_SERVER_MANIFEST"
150157
printf 'KeyLoad__ContainerImages__Server=%s\nBenchmarks__ContainerImages__LoadGenerator=%s\nKEYLOAD_IMAGE_RECEIPT=%s\n' "$KEYLOAD_SERVER_IMAGE" "$KEYLOAD_RUNNER_IMAGE" "$RUNNER_TEMP/keyload-images/image-receipt.json" >> "$GITHUB_ENV"
158+
printf 'KEYLOAD_PRIOR_SERVER_IMAGE=%s\nKEYLOAD_PRIOR_IMAGE_RECEIPT=%s\nKEYLOAD_PRIOR_SERVER_MANIFEST=%s\n' "$KEYLOAD_PRIOR_SERVER_IMAGE" "$KEYLOAD_PRIOR_IMAGE_RECEIPT" "$KEYLOAD_PRIOR_SERVER_MANIFEST" >> "$GITHUB_ENV"
151159
- name: Find Chrome for admin tests
152160
shell: bash
153161
run: |

‎README.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ A bounded lossless time-series chunk codec has [development evidence](docs/imple
4949

5050
Canonical key validation and persisted document permissions have [development evidence](docs/implementation/keycodec-crud-development-2026-10-04.json): 2,889 tests pass in each Aspire normal/scalar suite and 228 recovery tests pass, with 1,000 unique atomic process-crash trials. This includes invariant decimal keys, malformed-input bounds, owned storage bytes, CRUD revisions, index rollback and isolated field/row authorization controls. On the earlier delivered `e97bf30` source, Linux build/unit/scalar/recovery passed; its RF3 suite was 83/84 and remains a failed complete gate.
5151

52-
Whole-node offline native5-to6 conversion, retained checkpoint sidecars and guarded regular-file reads have [development evidence](docs/implementation/node-epoch-development-2026-10-04.json): 2,908 tests pass in each full Aspire unit/scalar suite, and 257 recovery tests pass. The 42 new component cases include six actual node-stage process kills; the full recovery run also retains 1,000 unique atomic crash trials. Genuine old-to-current Docker/Aspire RF3 and new exact-source Linux qualification remain open.
52+
Whole-node offline native5-to6 conversion, retained checkpoint sidecars and guarded regular-file reads have [development evidence](docs/implementation/node-epoch-development-2026-10-04.json): 2,908 tests pass in each full Aspire unit/scalar suite, and 257 recovery tests pass. The 42 new component cases include six actual node-stage process kills; the full recovery run also retains 1,000 unique atomic crash trials. [Original Linux results for `6e09f03`](docs/implementation/node-epoch-linux-6e09-2026-10-04.json) confirm 2,908/2,908 normal tests, 84/84 RF3 tests and 118/118 analyzer tests. Its scalar suite was 2,907/2,908 due to a real-time expiry test failure, so recovery was skipped and the complete CI gate remains open. Genuine old-to-current Docker/Aspire RF3 remains separately pending.
53+
54+
The genuine prior-image builder and cold RF3 fixture now have [source and development evidence](docs/implementation/node-epoch-cold-rf3-development-2026-10-04.json). All 11 new archive/proof/offline-CLI cases pass in the full normal and scalar invocations; scalar passes 2,919/2,919 and process recovery passes 257/257. Normal passes 2,918/2,919 with one existing exact nullable-allocation control failure. The actual prior-image build, both Docker/Aspire RF3 waves and complete delivered-source Linux gates remain pending.
5355

5456
## Get started
5557

‎docs/ADR/ADR-058-orleans-coordinated-cache-memory.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,3 +593,7 @@ No public/data/version/topology migration. Rollback reverts only this test repai
593593
previous failed tests remain evidence and cannot be weakened. No local tests or
594594
crypto are executed. Coverage, receiver/control/migration/probe, performance and
595595
production-readiness gates remain separate and open.
596+
597+
## Real prepare-age timer repair (2026-10-04)
598+
599+
The original Linux scalar report for source `6e09f03b1d3d98f5bd01479d025103982b9f87ee`, run `37174348261`, failed AC-CACHE-012 because one `Task.Delay(2s)` completed before the measured monotonic prepare age reached two seconds. Root owns TASK-CACHE-REAL-PREPARE-AGE-TIMER-REPAIR in `CacheReadPermitAcceptanceTests.cs`: wait until the actual `TimeProvider.System.GetElapsedTime` threshold, with the existing linked30-second deadline and a1ms minimum delay to avoid a sub-tick busy loop. Use the same real-age wait before expiry observation. Preserve every prepare-validity, lease-validity, acceptance-origin, expiry, capture, revision and renewal assertion and threshold. No production lease, fake clock, serializer, public API, policy or topology change. Rollback affects only this test helper. Complete build/format/governance and normal/scalar Aspire TUnit, then retain exact delivered-source Linux original reports; the failed run cannot count as green and its skipped recovery is not qualified.

0 commit comments

Comments
 (0)