Skip to content

Verify watchdog lease recovery from a genuine original activity claim - #886

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/878-watchdog-claimed-attempt
Oct 21, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/878-watchdog-claimed-attempt

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Qualify watchdog recovery of an actual activity claim

Core source 39413974 retains the two fresh-main errors from 39563295508, MySQL shard 2 and PostgreSQL shard 3. Both identify testTaskWatchdogReclaimsExpiredActivityTaskLease: its synthetic running activity has no recorded original attempt, yet its old expectation invents an expired attempt and redispatches the same task.

The follow-through uses an actual workflow admission and ActivityTaskClaimer claim. After the original lease expires, the watchdog must expire that original attempt, cancel its old task, retain the original owner/deadline, and dispatch a distinct retry under the recorded two-attempt/five-second-backoff policy. History, summary, exact task/attempt links and repeated-watchdog idempotency are asserted. A separate incomplete-state control requires no invented attempt, history or dispatch. Production source is unchanged by this fixture correction.

Exact candidate 94589cf071afe9c807d19f6db6202a4de311b512 / tree a84d4f29d6c4491828782f30119c30e3b5e0264e passes the complete affected PostgreSQL file (128 tests / 1,736 assertions) and all twelve MySQL watchdog controls (12 tests / 175 assertions). The two new PostgreSQL controls separately pass 2 tests / 34 assertions; that count overlaps the full file. PHPStan reports no errors and ECS/diff checks pass. PHP 8.3.35, PostgreSQL 17.11 and MySQL 8.0.46 were actual local runtimes; dependencies came from a normal Composer install.

The initial broad local MySQL run is not a pass: its isolated 768-MiB database was actually OOM-killed (137), producing 69 errors among 128 tests after 59 had passed. A fresh 1.5-GiB database, verified through authenticated final TCP readiness, passes the twelve watchdog controls with unchanged source/assertions. This narrower acceptance does not rescue the incomplete full-file MySQL original. Initial fixture snapshot/expired-grant expectation mistakes were corrected before committing the candidate; original active grants are cleared on settlement while history retains the original deadline.

Every applicable normal repository gate and Sonar passes for PR #886; independent Sonar issue review is empty. Merged 3e3add8693c624195ff6818985c7bb10cc4920fa preserves exact reviewed tree a84d4f29d6c4491828782f30119c30e3b5e0264e. The merged remote head is independently verified absent. Fresh-main qualification is separate and pending. The original fresh-main errors remain failed.

Core 2.10.0 tagging and release PR #885 remain held until exact new main and updated metadata candidate 54269101 qualify. The larger #878 requirement, including PHP/embedded automatic maintenance and actual installed long-running/departure controls, remains open. No product code, dependencies, schema, CI policy, native/shared/frozen files or old evidence changed in this test follow-through.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 21, 2026 09:01
@rmcdaniel
rmcdaniel merged commit 3e3add8 into main Oct 21, 2026
19 checks passed
@rmcdaniel
rmcdaniel deleted the fix/878-watchdog-claimed-attempt branch October 21, 2026 09:22
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.

1 participant