Skip to content

Repair retained local payload writes on retry - #158

Merged
rmcdaniel merged 3 commits into
mainfrom
fix/local-payload-retry
Sep 10, 2026
Merged

Repair retained local payload writes on retry#158
rmcdaniel merged 3 commits into
mainfrom
fix/local-payload-retry

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Sep 10, 2026

Copy link
Copy Markdown
Member

Summary

Addresses #157; published-artifact qualification and public downstream adoption are complete.

Strings and streams share one locked commit path. Partial or corrupt bytes are repaired at the same URI; matching objects are not truncated. Both paths flush and sync before acknowledgement, including a retry after an uncertain sync failure. No payload-sized staging copy is introduced.

Validation

  • Red baseline: 7 tests, 5 expected failures, including registry-ready state followed by authenticated fetch returning 422.
  • Local payload suites: 186 tests, 1,161 assertions, 9 infrastructure-dependent skips. Existing PHPUnit metadata deprecations remain.
  • Additional fresh-process short-stream repair: complete unit suite 7 tests / 37 assertions passes.
  • Pint and diff checks pass. CI supplies native backend coverage.

Release Follow-Through

  • Repair strings and cover partial, equal-length corrupt, binary, empty and matching objects.
  • Verify registry fetch, bounded extra memory, stream identity, and a fresh-process retry after a short write.
  • Pass repository CI: 2,187 tests / 43,695 assertions, native backends, MySQL/PostgreSQL upgrade checks, replay/query topology, Helm install and bounded-growth smoke.
  • Merge and publish Server 2.3.10 / Helm 0.1.89; the release workflow completed successfully.
  • Confirm the patch using the untouched published image across three fresh containers, stable registry identities and exact authenticated fetches.
  • Sample App PR89 merged at 5aa3572b; PHP/Python/Rust and prepared-image checks pass. Published amd64/arm64 qualification and main-channel promotion passed; GHCR and Docker Hub manifests match the qualified immutable images. Private rollout remains tracked separately.

No public API, codec, SDK implementation or Workflow package change is required. PHP/Python/Rust clients use the same Server-owned storage contract; unchanged SDKs do not need version-only releases. Private deployment decisions remain in their owning private repository.

@rmcdaniel
rmcdaniel marked this pull request as ready for review September 10, 2026 06:57
@rmcdaniel
rmcdaniel merged commit 7a38887 into main Sep 10, 2026
14 checks passed
@rmcdaniel

Copy link
Copy Markdown
Member Author

Published Server 2.3.10 from 7a38887ae8f18da2051f2740adec245c40d9fe16; release run passed image publication and bare-image/source-free Compose checks. Both amd64 and arm64 manifests are available.

Published-image regression passes (September 10, 07:17-07:18 UTC): three separate credential-free, network-disabled containers used the untouched amd64 registry image durableworkflow/server@sha256:8b829b4a6dcf44e883b89afffcf907267fab4b4f6d05bcd49d6d0e015f4417ae, containing Workflow 2.0.12 (39940444). The first container migrated a disposable SQLite database, retained four valid Avro values, marked their rows writing, and left partial or equal-length corrupt backing files. A second container repaired all four with stable IDs/URIs and exact authenticated HTTP-kernel fetches. A third freshly booted container verified all four again without rewriting. The cases cover long text, double, binary/non-UTF-8 bytes and a nested map. No source or vendor override was mounted into the published image; only the disposable probe/state directory was supplied. This is local registry/HTTP-kernel persistence qualification, not a network, HA or Cloud deployment claim.

Source CI passed 2,187 tests /43,695 assertions, native backend cases, MySQL/PostgreSQL upgrade checks, replay/query topology, bounded-growth smoke and Helm install. Existing PHPUnit metadata deprecations remain.

Downstream follow-through: Sample App PR89 updates its single Server pin and is running ordinary application, PHP/Python/Rust and prepared-image checks. No SDK, CLI, Workflow or Waterline release is necessary: their implementation and portable contract did not change. Existing explicitly pinned images do not update automatically. Private deployment decisions remain tracked privately; no production rollout is claimed here. Helm0.1.89 publication is completing in the release workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants