Skip to content

PreviewsJITLinkTests intermittent crash: LLVM ORC SimpleRemoteEPC handleSetup assertion #353

Description

@obj-p

Specimen

Full local suite run on 2026-07-10 (branch 337-pinned-test-devices, base 263e8f6): //previewsmcp/Tests/PreviewsJITLinkTests:PreviewsJITLinkTests FAILED in 2.7s while every other target passed. The process died on an LLVM-side assertion:

Assertion failed: (PendingCallWrapperResults.size() == 1 && I != PendingCallWrapperResults.end() && "Setup message handler not connectly set up"), function handleSetup, file SimpleRemoteEPC.cpp, line 284.

(The "connectly" typo is LLVM's, in llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp — the assertion fires in SimpleRemoteEPCServer/client setup when the Setup message arrives without exactly one pending call-wrapper result, i.e. an EPC bootstrap ordering race.)

Context from the failed log before it was overwritten by the re-run: RespawnHandoffTests.failedRespawnKeepsOldAgentAndItsRenderAlive had just PASSED (the intentional _previewsmcp_absent_symbol JIT session errors it produces appeared normally); the assertion fired ~24 lines later while the parallel suites were mid-bootstrap. The whole test process aborts, so the target fails even though no individual test reported a failure.

Isolated re-run immediately after: PASSED in 13.2s. So this is an intermittent bootstrap race under parallel suite load, likely in the SimpleRemoteEPC transport setup path used by the agent-session bootstrap (survivesRepeatedRemoteSessionBootstrap and friends run concurrently).

Not masked

Recorded per no-retry policy: the fix is to root-cause the EPC setup handshake ordering (our fd/transport wiring feeding SimpleRemoteEPC, or an upstream LLVM race we can sequence around), not to add retries. Next natural step when it recurs: capture the crashed process's full log (bazel overwrites test.log on re-run — copy it out before re-running) and thread-sample if it wedges rather than asserts.

Unrelated to #337 (the run that surfaced it): that diff touches only simulator device selection in other test targets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions