registry compatibility: abort after timed-out plugin call contamination risk #155

Closed
opened 2026-09-08 02:03:05 +00:00 by nsaspy · 0 comments
Owner

Problem

Compatibility deadlines use a daemon thread for synchronous plugin calls. Python cannot kill that thread. After a plugin module import or contract call times out, the timed-out code can still finish later and mutate module/global state. Continuing to validate later plugins in the same process can therefore make their results depend on a failed plugin's late side effects.

Required fix

  • deterministic RED with two registry entries: the first loader exceeds the deadline, the second loader records whether it was invoked;
  • after any TimeoutError from a plugin compatibility transaction, record the per-plugin incompatibility and abort the remaining plugin walk immediately;
  • do not claim later plugins green after a timed-out synchronous call in the same process;
  • preserve ordinary non-timeout per-plugin failure accumulation;
  • full source/install compatibility, registry/plugin tests, generated package builds.

This is registry fail-closed behavior only. No Zara Core changes.

## Problem Compatibility deadlines use a daemon thread for synchronous plugin calls. Python cannot kill that thread. After a plugin module import or contract call times out, the timed-out code can still finish later and mutate module/global state. Continuing to validate later plugins in the same process can therefore make their results depend on a failed plugin's late side effects. ## Required fix - deterministic RED with two registry entries: the first loader exceeds the deadline, the second loader records whether it was invoked; - after any `TimeoutError` from a plugin compatibility transaction, record the per-plugin incompatibility and abort the remaining plugin walk immediately; - do not claim later plugins green after a timed-out synchronous call in the same process; - preserve ordinary non-timeout per-plugin failure accumulation; - full source/install compatibility, registry/plugin tests, generated package builds. This is registry fail-closed behavior only. No Zara Core changes.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara-plugins#155
No description provided.