Skip to content

Ship Workflow 2.0.12 schedule precision fix in Server 2.3.9 - #156

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/workflow-2.0.12
Sep 10, 2026
Merged

Ship Workflow 2.0.12 schedule precision fix in Server 2.3.9#156
rmcdaniel merged 1 commit into
mainfrom
fix/workflow-2.0.12

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Change

Adopt the published Workflow 2.0.12 package (39940444), addressing durable-workflow/workflow#505. Prepare Server 2.3.9 / Helm 0.1.88 using the existing source-release synchronizer; generated defaults remain aligned.

Add command-level regressions for exact whole-second, exact fractional, elapsed fractional and future fractional deadlines. Each goes through schedule:evaluate, checks persisted timestamp precision and verifies repeated evaluation does not start twice.

Verification

The four new SQLite command tests pass (35 assertions). Pint and source-release consistency pass. Broader schedule suite and repository CI are running. No public API, protocol, schema or resource defaults change.

Delivery

After required checks: publish the immutable image/chart, verify its bundled Workflow version, and run the published schedule experiments covering cadence, missed-fire restart, operator controls and official clients. No unchanged SDK or CLI release is required.

@rmcdaniel

Copy link
Copy Markdown
Member Author

The complete focused Server schedule suite passes: 131 tests / 721 assertions, including the four new command-level persisted-deadline regressions. Pint and source-release consistency checks pass. Upstream published Workflow 2.0.12 also passed SQLite/MySQL/PostgreSQL tick qualification plus all 16 published Laravel upgrade journeys; see durable-workflow/workflow#505. Image publication and published Server schedule qualification still remain.

@rmcdaniel
rmcdaniel merged commit f471ef0 into main Sep 10, 2026
14 checks passed
@rmcdaniel

Copy link
Copy Markdown
Member Author

Server 2.3.9 and Helm 0.1.88 publication completed successfully: https://github.com/durable-workflow/server/actions/runs/34420737996. The downloaded Docker image is sha256:653d4180e73153846b140dc796f3266fc0b932a581ad1615b1ce3fbc25aec7c3. The focused published-image cadence and missed-fire/restart experiment is now running against that exact image. This follows the scheduler-only change; it is not a claim of a newly rerun full SDK/protocol matrix.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Published-artifact scheduler qualification completed 2026-09-10 00:27:33-00:40:06 UTC.

Image: durableworkflow/server:2.3.9@sha256:653d4180e73153846b140dc796f3266fc0b932a581ad1615b1ce3fbc25aec7c3. A fresh PHP process inside the downloaded image verifies Workflow 2.0.12, source 39940444228086d8d888ef8061cd67df8cbba8c2. Runner: Server 68168f34b637a19c054211f4db2df9c616799a86, existing scripts/conformance/schedules-published-artifacts.sh; no local product source was mounted into the tested runtime.

Selected behavior Result
Cron cadence Pass: four original occurrences; 0-1s measured drift; no duplicate or skipped fire
Fixed-rate cadence Pass: eight original occurrences; 1-4s measured drift; no duplicate or skipped fire
Missed-fire policy Pass: confirmed 125s scheduler outage, no fires while stopped, one catch-up preserving the overdue occurrence, then normal cadence
Restart survival Pass: schedule remained listable/describable and fired after Server restart within the existing 90s deadline

Cadence history reads had zero transient transport failures. Both selected scenario files have no findings. The Docker stacks, networks and volumes were removed by the runner.

Reproduce from this repository:

DW_SERVER_VERSION=2.3.9 \
DW_SERVER_IMAGE=durableworkflow/server:2.3.9 \
DW_CLI_VERSION=2.0.0 DW_PHP_SDK_VERSION=2.0.9 \
DW_PYTHON_SDK_VERSION=2.0.4 DW_WATERLINE_VERSION=2.0.2 \
DW_SCHEDULES_RUN_PHP_SURFACE_SHARD=0 \
DW_SCHEDULES_RUN_CROSS_LANGUAGE_SHARD=0 \
DW_SCHEDULES_RUN_CLI_SURFACE_SHARD=0 \
DW_SCHEDULES_RUN_PYTHON_LIFECYCLE_SHARD=0 \
DW_SCHEDULES_RUN_OPERATOR_CONTROLS_SHARD=0 \
DW_SCHEDULES_RUN_ADVERSARIAL_SHARD=0 \
bash scripts/conformance/schedules-published-artifacts.sh --result-dir results

Scope is deliberately the changed scheduler behavior, not a new full schedule/SDK conformance claim. CLI, SDK and Waterline variables are resolver context only for these selected runtime probes; their skipped client/install scenarios remain not_covered. Exact whole-second/fractional predicate, no-early-start and repeated-tick tests are separately qualified against published Workflow 2.0.12 on SQLite/MySQL/PostgreSQL in Workflow #505.

Publication, matching Helm chart and all required source CI checks passed. Sample App #88 is the remaining service-mode example adoption.

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