Skip to content

fix(executor): bound registry artifact cache with leased LRU eviction - #3139

Open
daryllimyt wants to merge 163 commits into
mainfrom
daryl/eng-1568-registry-cache-eviction
Open

fix(executor): bound registry artifact cache with leased LRU eviction#3139
daryllimyt wants to merge 163 commits into
mainfrom
daryl/eng-1568-registry-cache-eviction

Conversation

@daryllimyt

@daryllimyt daryllimyt commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Bounds the executor registry-artifact cache without allowing eviction to race active actions. The lifecycle now centers on three invariants: one runtime state per cache key, SquashFS mounts scoped to active leases, and trash/ as the durable deletion retry queue.

Stack

Builds on #3159, now merged, which guarantees action subprocess descendants are gone before their cache leases are released.

Changes

  • Make RegistryArtifactCache.lease() the only public path-access API so every consumer participates in eviction safety.
  • Store each cached artifact under entries/<key>/ and keep one process-local runtime state per key for locking, lease accounting, and recency.
  • Scope SquashFS mounts to active leases: the final release unmounts while retaining the cached image, so later leases remount without downloading again.
  • Retire complete entries with one atomic rename to trash/; the directory itself is the retry queue, and deletion runs off the event loop with cancellation-safe thread rejoining.
  • Distinguish atomic retirement from physical byte reclamation and stop the current budget pass when deletion fails, preventing cascading over-eviction.
  • Enforce restart-safe LRU limits of 64 entries and 10 GiB by default while protecting leased, busy, and pool-owned tarball entries.
  • Keep admission fail-open when maintenance fails, while propagating startup inspection errors so cleanup is retried instead of silently marked complete.
  • Remove downloader .part files on cancellation and discard only empty entry shells after failed materialization, while retaining reusable canonical images.
  • Restrict startup cleanup to known legacy and scratch names, remove legacy .part downloads, and preserve legacy backing images for active mounts.
  • Update pool discovery and integration fixtures for the nested entry layout.

Testing

  • Cache and blob unit suites: 133 passed
  • Combined executor regression suite: 146 passed, 1 skipped
  • Privileged Linux mount lifecycle smoke test: 1 passed
  • Ruff check and format: clean across the repository (1511 files)
  • BasedPyright on all changed files: 0 errors, 0 warnings

LOC breakdown

Category + -
Logic 1258 214
Tests 2864 91
Infra/config 15 0

Related Issues

ENG-1568


Summary by cubic

Bounds and hardens the executor registry artifact cache with leased LRU eviction so disk use stays within limits and loop devices are released. Leases span run_python and the Test backend; a Linux supervisor ensures subprocesses are killed and reaped on cancellation. Fixes ENG‑1568.

  • New Features

    • Lease‑only cache API with per‑key locks; cold admissions are single‑flight and held across run_python and Test.
    • Bounded LRU eviction under TRACECAT__EXECUTOR_REGISTRY_CACHE_MAX_ENTRIES and TRACECAT__EXECUTOR_REGISTRY_CACHE_MAX_BYTES (64, 10 GiB; 0 disables); configurable via docker-compose* and Fargate variables.
    • Mounts exist only while leased; first‑mount capability probe is serialized; reclaim idle mounts and retry once; mount inspection is fail‑closed.
    • Startup sweep once‑guarded via ensure_swept(), runs off‑loop, warmed at worker start, retried on failure, and remains fail‑open. Storage downloads reserve disk and redact bucket/key/provider on transport errors.
  • Bug Fixes

    • Eviction is atomic with leases and cancellation‑safe: rename retirements to scratch under lock, unmount before delete, delete off‑loop with retry; skip busy/unreadable mounts.
    • Budget safety and convergence: serialize scan/select/evict under a budget lock; pre‑arm and restore dirty flags across success, failure, and cancellation; precise byte accounting; persist LRU touches for tarball‑only entries; discard incomplete entries.
    • Cancellation‑safe lifecycle: always kill and reap action, mount/umount, extractor, dependency, and utility processes; a Linux subreaper and shared process‑group helpers ensure cleanup finishes before leases release.
    • Guardrails: preserve warm cache on failed admissions and cancelled leases; protect pool‑worker tarball paths from eviction at runtime and during startup trim when the backend resolves to pool.

Written for commit f51ad27. Summary will update on new commits.

Review in cubic

@daryllimyt daryllimyt added fix Bug fix self-hosted Issues related to self-hosted deployment performance Changes that improve performance labels Jul 27, 2026
@zeropath-ai

zeropath-ai Bot commented Jul 27, 2026

Copy link
Copy Markdown

No security or compliance issues detected. Reviewed everything up to f51ad27.

Security Overview
Detected Code Changes

The diff is too large to display a summary of code changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0c54833372

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/action_runner.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e33f55a28d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5921552222

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5920555e33

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 74c7d2a54b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 335ec01ac5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9c37554a57

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
@blacksmith-sh

This comment has been minimized.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7bc2e9cbdb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ed2dc9450f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/backends/base.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb23806d87

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f5ef820113

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d4bc003f71

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6cdde4b8b5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated
@blacksmith-sh

This comment has been minimized.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9f353ce7f4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/backends/test.py
@daryllimyt
daryllimyt force-pushed the daryl/eng-1568-registry-cache-eviction branch from 9f353ce to 7ccb553 Compare July 28, 2026 20:35

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 71548e9e13

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: df3ae04a46

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
@daryllimyt
daryllimyt changed the base branch from main to graphite-base/3139 July 30, 2026 17:00
@daryllimyt
daryllimyt force-pushed the daryl/eng-1568-registry-cache-eviction branch from df3ae04 to e9cfd10 Compare July 30, 2026 17:00
@daryllimyt
daryllimyt changed the base branch from graphite-base/3139 to daryl/eng-1568-process-tree-containment July 30, 2026 17:00

daryllimyt commented Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

@daryllimyt

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 23b8a40995

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

if temp_dir.exists():
shutil.rmtree(temp_dir, ignore_errors=True)

P2 Badge Retry failed tar staging cleanup at runtime

When a failed or cancelled tar extraction leaves files that rmtree cannot remove because of a transient filesystem error, ignore_errors=True silently retains the partial .tmp tree in staging/. Capacity checks continue charging those bytes, but runtime maintenance clears only trash/ and paths recorded during the startup sweep, so later cold admissions can fail until the executor restarts. Detect the cleanup failure and add this exact staging path to a runtime retry mechanism.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 35faa53276

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated
Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7c2e17f198

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifacts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

if not self._pid_isolation_warning_emitted:
message = "PID namespace isolation unavailable; running script without PID isolation"
logger.warning(message, reason=pid_namespace_probe_error())
module_logger.warning(message)
self._pid_isolation_warning_emitted = True
return base_cmd

P2 Badge Restore supervision for the unsafe PID fallback

Fresh evidence after the prior containment fix is that _build_execution_cmd() again returns the bare Python command when PID namespaces are unavailable. In supported Linux deployments using the unsafe fallback, a script can start a detached setsid() descendant and return; communicate_process_group() only kills the original process group, so the descendant survives while the registry lease is released and its imported artifact may be unmounted or evicted. Route this fallback through the subreaper supervisor again.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/storage/blob.py Outdated
Comment thread tracecat/executor/registry_artifact_storage.py
Comment thread tracecat/executor/registry_artifact_storage.py Outdated
Comment thread tracecat/storage/blob.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2f7a4d5742

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/action_runner.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b929c7d141

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifact_storage.py Outdated
Comment thread tracecat/executor/registry_artifacts.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

stdout_bytes, stderr_bytes = await communicate_process_group(
process,
timeout=timeout_seconds,
)

P2 Badge Restore supervision for unsafe run-python fallback

When PID namespaces are unavailable—which includes the inspected Docker Compose and Fargate defaults—a script can launch a detached descendant with setsid() and return; this call uses the default terminator, which only kills the original process group, so the descendant survives after the registry lease is released and its import paths may be evicted. Fresh evidence after the earlier thread is that the current _build_execution_cmd() again returns the unsupervised base_cmd, removing the supervisor-based cleanup that had addressed this case.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aaf953531f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/config.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4f4c2d2943

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/config.py
Comment thread tracecat/executor/backends/base.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f51ad27073

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tracecat/executor/registry_artifact_storage.py
@daryllimyt

Copy link
Copy Markdown
Contributor Author

Resolved the cache-root-child discussion as outside this change: Direct and UnsafePid execution is intentionally outside a filesystem sandbox and can write any host path accessible to the executor UID, so restricting only the derived cache root would not establish a security boundary. The cache root is configurable, and deleting arbitrary top-level children that the cache cannot prove it owns could delete unrelated data. Those bytes remain accounted as non-evictable so admission fails closed. Enforcing filesystem isolation requires sandboxing or a separate UID.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Bug fix performance Changes that improve performance self-hosted Issues related to self-hosted deployment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant