Skip to content

ruby: backport final JIT review fixes to deployed LuaJIT omnibus - #77

Merged
dalehamel merged 0 commit into
dale/luajit-omnibusfrom
dale/luajit-omnibus-ruby-jit-review-fixes
Aug 13, 2026
Merged

dalehamel merged 0 commit into
dale/luajit-omnibusfrom
dale/luajit-omnibus-ruby-jit-review-fixes

Conversation

@dalehamel

@dalehamel dalehamel commented Aug 11, 2026 •

Copy link
Copy Markdown
Member

Purpose

Create a regression-testing copy of the currently deployed LuaJIT omnibus and backport only the final two Ruby JIT review fixes. PR #50 itself remains unchanged.

Verified deployed base

The production chain resolves to the same exact profiler revision:

  1. container-os-tools-shopify production manifest uses Prophiler image e22944afb0c0e03641728a5e56188dd49ab6e2e3.
  2. That profiles-processor commit pins ebpf-profiler/opentelemetry-ebpf-profiler and lib/otel-errors EXPECTED_COMMIT to 7c16777d686d62553714456f9ca8dfbfcb6a5fa8.
  3. 7c16777d is the current head of LuaJIT unwinding — omnibus snapshot (tarantool + openresty, amd64/arm64) #50 (dale/luajit-omnibus).
  4. Live cos-toolbox-shopify DaemonSets sampled across core-us, core-eu, and apps-us use immutable image digest sha256:606d8720…; Artifact Registry maps that digest to tag e22944af…. All desired pods use that digest (core-us 824/824 ready; the other sampled fleets were fully updated with one node each in ordinary readiness churn).

This PR is based directly on 7c16777d. It does not merge or rebase upstream main; that synchronization is intentionally deferred.

Backports

Exactly two source commits are added:

  • ruby: bound unlabeled JIT fallback to executable mappings
    • Keeps exact PR_SET_VMA-named reservations, including non-executable VMAs.
    • Bounds unlabeled fallback at the observed anonymous-executable envelope instead of absorbing an ambiguous trailing RW/PROT_NONE mapping.
    • Still spans non-executable holes between observed executable fragments.
  • ruby: report partial JIT mapping publication
    • Preserves proc-data-before-prefix ordering.
    • Adds explicit context when prefix publication fails after proc data is already visible, and verifies retry behavior.

No generated ABI types, error catalog, eBPF source, or eBPF blobs changed.

Validation

  • Linux arm64 unit and race tests passed for process, processmanager, interpreter/ruby, and hermetic interpreter/luajit tests.
  • Ruby 3.4.7 YJIT coredump regression tests passed on arm64 and amd64.
  • A live privileged arm64 OpenResty/LuaJIT fib integration test passed with resolved Lua frames (2 passing traces, 0 failures).
  • The committed amd64 and arm64 eBPF blob hashes are byte-identical to LuaJIT unwinding — omnibus snapshot (tarantool + openresty, amd64/arm64) #50.
  • git diff --check passed.

@dalehamel
dalehamel merged commit 19aafba into dale/luajit-omnibus Aug 13, 2026
@dalehamel
dalehamel force-pushed the dale/luajit-omnibus branch from 7c16777 to 19aafba Compare August 13, 2026 22:41
@dalehamel
dalehamel force-pushed the dale/luajit-omnibus-ruby-jit-review-fixes branch from a94bd38 to 19aafba Compare August 13, 2026 22:41
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.

1 participant