tractor/ai/prompt-io/20261028T193020Z_b64c89f0_c...

3.1 KiB
Raw Blame History

Investigated the original Piker IB quote-cache patch on the qualified Tractor pin. Normal final-owner closure injects TrioTaskExited into the asyncio peer. Its echo was then treated as an independent error both by the done callback and by translate_aio_errors().

git diff HEAD~1..HEAD -- tractor/to_asyncio.py

Record the precise owner-exit exception on LinkedTaskChannel. Consume that object’s completion callback without cancelling an already unwinding owner. At the translator boundary preserve the actual Trio-side error, absorb a graceful echo under the default policy, or raise the exact signal when explicit reporting is requested. Independent errors, including newly constructed same-type errors, retain existing propagation. Classify the expected echo in logs as exit acknowledgement rather than an independent producer failure.

git diff HEAD~1..HEAD -- tests/test_cached_aio_owner_exit.py

Use an infected actor with real bridge/cache/broadcast primitives, overlapping consumers, repeated owner retirement/reopening and two RPCs on the same actor. Test native and Greenback producer tasks, cancelled final consumers, explicit exit reporting, and independent RuntimeError/same-type cleanup failures with exception identity and cause assertions. Capture asyncio callbacks to reject duplicate unhandled echoes. Explicitly cancel the still-running test actor after its successful RPCs, before closing its actor nursery.

git diff HEAD~1..HEAD -- docs/guide/asyncio.rst

Clarify the existing default graceful-exit contract: only the exact bridge-issued owner-exit signal is eligible for suppression.

Corrected baseline: 8 failed, 4 passed. Fixed matrix: 12 passed. Selected Tractor coverage: 36 passed, 18 deselected, with 24 existing multiprocessing fork-in-multithreaded-process deprecation warnings. Piker’s original cached quote patch plus real bridge tests: 4 passed, including actor survival and callback cleanliness.

This establishes a defect against the documented contract at the pin, not a bisected historical regression between Tractor revisions. No installed runtime, Piker source branch or live broker was changed.

Subsequent human evidence and authorization

The human reported successful passage through the previous backfill reset crash. Live logs show the candidate’s two owner-exit acknowledgements. A later get_quote() TimeoutError remained primary through that cleanup, and reached the chart after PDB continuation. Separate completion-delivery, SIGINT, Qt, EMS and sampler failures remain outside this patch; see the paired structured record.

Human request: > so let’s get the tractor wkt committed so we can pin there and then > move forward with fixin all this new shiz

Human correction: > i meant do a commit plan dawg Bp

After the agent offered a one-commit soft reset preserving the files: > yeah, bc i want to review before the commit

The authorized soft reset restored b64c89f0 with all files staged.