Skip to content

Add guarded runtime activity lease renewal - #564

Merged
rmcdaniel merged 32 commits into
mainfrom
fix/878-activity-lease-renewal
Oct 22, 2026
Merged

rmcdaniel merged 32 commits into
mainfrom
fix/878-activity-lease-renewal

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Activity lease maintenance and container logging for Server 2.11

Part of Workflow #878, and incorporates #623 / refs #618. A healthy blocking activity must be able to outlive its renewable runtime lease without inventing application heartbeats or changing recorded business deadlines. Worker departure settles only that worker's original claims under the recorded retry policy.

Current exact candidate aefb8698e792c4cf0c5cc58ae7072e0123120a34 / whole e5821c4e9fae5ae9fd56deccd7f8370d3f935afd includes current main bedd60b4c and logging head cc4dba7d7. It keeps published Core 2.10.1 / 1a5ec33f, Server 2.11.0 / Helm 0.3.0 and current OpenAPI 56. Core is the only resolved package change. Native tree 74c5ed27a00c90a22f8814021422ac4b4dd572b6, shared/runner fixtures and frozen actors match current main exactly.

Implementation

  • Optional worker-only activity lease renewal rechecks the original task/attempt, owner/incarnation, namespace and live session under mutation locks. Capability discovery requires the optional Core contract; custom unsupported bridges remain unsupported.
  • UTC6 original run/execution deadlines and uncached server time support guarded renewal/status/terminal preflight. Core fences again after slow external resolution.
  • Make documented DW_ACTIVITY_TASK_TIMEOUT effective as integer 1–86400, default 300. This is a runtime lease, not an authored timeout or retry-policy change.
  • Settle exact activity claims atomically on either deregistration route, preserving replacement authority and rollback. Fencing does not physically stop an old user callback.
  • Keep the separately qualified pinned PHP 8.3.36 base. No published tag is moved.
  • Default image/Kubernetes/Helm logging to stderr, honoring explicit channels and severity. Require eight actual API/queue/scheduler logging checks on produced images before chart publication, including JSON, file override and filtering. Preserve historical immutable recovery contracts and scoped always-cleanup.
  • Retain reusable normally installed PHP consumer inputs and the chart upgrade guidance. Generated metadata stays Server 2.11.0 / chart 0.3.0; Send application logs to stderr across Server deployment paths #623's unpublished intermediate 0.2.4 is not published or reused.

Evidence and remaining qualification

The prior exact d9aac032f passed all applicable feature, database, schema, chart, performance, CodeQL, Sonar and boundary checks. Earlier actual components include 108/956 SQLite, 73/766 MySQL, 73/2,977 PostgreSQL and the overlapping 31/2,764 route/schema selection. Published-Core departure controls also pass on all three databases. Component evidence.

The prepared production-image PHP SDK 3.2.0 consumer completed a genuine 360-second blocking activity under the normal 300-second lease, with one invocation/attempt, three first-attempt tasks, six events and zero application heartbeats/repairs. A separate named five-second lease owner-loss control recovered the declared second attempt under its original observer. Exact image, failed observations and inputs.

The combined metadata check and all 28 Helm release controls pass locally. The final test's existing-OCI output is a mock, not registry publication. Logging's parent feature/chart/performance/source checks and Sonar API review pass, with zero OPEN/CONFIRMED and three reasoned accepted serial-I/O findings. Its separate CodeQL Actions analysis was still active when combined. No earlier whole-tree result qualifies this new candidate. Fresh normal hosted checks are required before merge.

Retain failed original 386788572 / run39538649933 and the unrecovered assertion, earlier malformed fixtures, cached clock, namespace and manually late observer failures. The new functional source is not called their rescue. All previous actual source-image, consumer, compiler/dependency/database/raw phases are retired; only pushed source is held.

After exact source qualification, publish Server 2.11.0 / chart 0.3.0, verify the produced image's logging/TLS, and run normally installed PHP 3.2.0, Python 2.8.0 and Rust 4.2.0 through six-minute and killed-worker controls on the published tuple. Those SDK releases already exist; installed Server acceptance remains pending. Keep #618, Workflow #878 and shared #221 open until their own remaining acceptance is met. No native capability, image, catalog adoption or cutover follows.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 22, 2026 01:30
@rmcdaniel
rmcdaniel merged commit 36d1627 into main Oct 22, 2026
22 checks passed
@rmcdaniel
rmcdaniel deleted the fix/878-activity-lease-renewal branch October 22, 2026 01:46
@rmcdaniel

Copy link
Copy Markdown
Member Author

Combined source is merged as 36d16273604755f3dd0743cab331cc7c62e51d8e at 01:46:35 UTC, exact tested whole e5821c4e9fae5ae9fd56deccd7f8370d3f935afd. All candidate normal/required checks pass, including feature/database/source, chart/kind, performance, CodeQL, Sonar and boundaries. Direct Sonar issue API review has zero OPEN/CONFIRMED findings. Earlier accepted findings retain their documented reasons.

#623 was also marked merged through the combined head. Both completed remote heads are absent. Current native tree remains exactly main's 74c5ed27a00c90a22f8814021422ac4b4dd572b6; shared/runner/frozen bytes are preserved.

Independent main qualification has started: PHPUnit Feature 39707625895, Perf 39707625912, Sonar 39707625907, CodeQL 39707624320 and the chart/upgrade routes remain separate from candidate evidence. No Server 2.11.0 tag/image or chart 0.3.0 is published yet. Publication, produced-image logging/TLS and normal PHP/Python/Rust six-minute and owner-loss acceptance follow those gates. #618 and Workflow #878 remain open. No native capability/catalog/frozen adoption follows.

All local source-image, consumer, syntax/metadata/Helm tooling and raw resources remain retired; only pushed source is held. Failed originals retain their own outcomes.

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