Conversation
snadrus
left a comment
There was a problem hiding this comment.
Please focus on comprehensive bug descriptions (with example scenarios that could become a test). It's unclear what problem(s) this PR is solving. This is a large PR in a complex code area handling many underspecified problems at once.
| Failed bool `db:"failed"` | ||
| } | ||
|
|
||
| // Storage claims re-read the reference after advisory discovery/ownership |
There was a problem hiding this comment.
What concerns me is that none of these situations should ever be a problem, so I'm unclear on the need for any of this code:
- missing data: The watchers schedule tasks when the data is available.
- ambiguous: I'm not sure what this refers to
- completed/failed: these are task concepts already.
| @@ -0,0 +1,30 @@ | |||
| ALTER TABLE harmony_task ADD COLUMN IF NOT EXISTS work_start TIMESTAMPTZ; | |||
There was a problem hiding this comment.
There are multiple 20260909-*.sql entries. This is not compatible with the loader.
|
Thanks for the review. I combined distinct changes without explaining their failure scenarios clearly enough. I checked them separately against base
The reproduction ZIP (README) contains the test overlays, commands and recorded results. Its SHA-256 is The duplicate migration-key concern is valid. Fresh startup executing both files and the forward reconciliation do not justify duplicate keys in a new upstream proposal. I agree the proven bug fixes should be separated from the new attempt telemetry and its asynchronous preparation/cleanup design. My next step is to narrow that scope while preserving the acquisition identity needed for safe completion. The PR code is unchanged at this point. |
Summary
Prevent slow task preparation from blocking scheduling and stale acquisitions/completions from changing a newer attempt.
Validation and limits
Normal/race and exact-tag vet/lint; PostgreSQL completion, same-owner recovery, missing-row, retry-clock, rollback and linked lock-wait tests, including a fence-removal negative control. The common completion code was also tested on disposable Yugabyte 2025.2.2.2-b11 with the actual migration runner, Read Committed and wait queues, including linked contention and stale rejection after lock release. Task/native bodies in these tests are substitutes.
The shared completion path has shown normal completion and subsequent task processing in production Indexing. This is not production validation of the entire PR or stale-completion races.
Participating workers must be updated: a WebRPC update or migration alone does not protect old workers. Stage UPDATE fencing inside
Do, native termination, and exactly-once callbacks after ambiguous commits or process loss remain out of scope. The completion fence adds no cleanup API or additional migration.Series overview
This is a navigation index, not a dependency for the independent PRs. The three Draft PRs depend only on this foundation and are independent of each other.