Skip to content

Isolate malformed Cron annotations between tenants on 0.9.0 - #144

Merged
sciabarracom merged 1 commit into
apache:0.9.0from
miki3421:fix-0.9.0-cron-tenant-isolation
Oct 22, 2026
Merged

sciabarracom merged 1 commit into
apache:0.9.0from
miki3421:fix-0.9.0-cron-tenant-isolation

Conversation

@miki3421

Copy link
Copy Markdown
Contributor

A malformed cron annotation in one namespace could raise an uncaught exception and stop the shared scheduler before it processed other tenants. Validate the annotation as a non-empty string of at most 4096 characters before parsing, and isolate processing errors to the individual action so the remaining batch continues.

The regression tests cover non-string/oversized values, a malformed action followed by another tenant's valid recurring and one-shot actions, namespace credential selection, and one-shot unscheduling. The existing recurring/autoexec behavior is preserved for valid input.

Fixes apache/openserverless#275.

Validation:

  • Focused unittest suite passed inside the baseline image with pinned croniter 1.4.1 and networking disabled.
  • Existing actionexecutor doctests and Python syntax checks passed; git diff --check is clean.
  • Live K3s 0.9.0 lab: Alpha and Beta each produced two fresh scheduled heartbeats while a malformed Alpha action existed. A job logged the malformed annotation before successfully dispatching Beta's heartbeat; the malformed action was never invoked. Alpha/Beta source was unchanged. The probe was removed and the original CronJob image was restored afterward.

@sciabarracom
sciabarracom merged commit 14e7a30 into apache:0.9.0 Oct 22, 2026
1 check passed
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