Skip to content

single-executable-application-test* fail on Linux ppc64le #59561

@richardlau

Description

@richardlau

This is similar to #59553, but for Linux ppc64le.

#58761 skipped several single-executable-application-test* tests on Linux ppc64le for Node.js 20.19.3 onwards:

  • test-single-executable-application
  • test-single-executable-application-assets
  • test-single-executable-application-assets-raw
  • test-single-executable-application-disable-experimental-sea-warning
  • test-single-executable-application-empty
  • test-single-executable-application-snapshot
  • test-single-executable-application-snapshot-and-code-cache
  • test-single-executable-application-snapshot-worker
  • test-single-executable-application-use-code-cache

There was an attempt to bisect during Node.js 20.19.3, but it was inconclusive (one bisect pointed to a WPT commit, a second bisect pointed to the release commit).

The same tests were skipped for Node.js 22.18.0 in #58914.

We're now seeing similar test failures when we build main with clang (the tests are currently passing when built with gcc).

In these cases the injected binary is crashing (SIGSEGV), e.g.
https://ci.nodejs.org/job/richardlau-node-test-commit-plinux/13/nodes=rhel8-ppc64le/console

17:58:07 not ok 4707 sequential/test-single-executable-application-empty
17:58:07   ---
17:58:07   duration_ms: 10763.88000
17:58:07   severity: fail
17:58:07   exitcode: 1
17:58:07   stack: |-
17:58:07     Copied /home/iojs/build/workspace/richardlau-node-test-commit-plinux/nodes/rhel8-ppc64le/out/Release/node to /home/iojs/node-tmp/.tmp.4706/sea
17:58:07     Injected /home/iojs/node-tmp/.tmp.4706/sea-prep.blob into /home/iojs/node-tmp/.tmp.4706/sea
17:58:07     [process 61879]: --- stderr ---
17:58:07     
17:58:07     [process 61879]: --- stdout ---
17:58:07     
17:58:07     [process 61879]: status = null, signal = SIGSEGV
17:58:07     /home/iojs/build/workspace/richardlau-node-test-commit-plinux/nodes/rhel8-ppc64le/test/common/child_process.js:98
17:58:07         throw error;
17:58:07         ^
17:58:07     
17:58:07     Error: - process terminated with status null, expected 0
17:58:07     - process terminated with signal SIGSEGV, expected null
17:58:07         at Object.<anonymous> (/home/iojs/build/workspace/richardlau-node-test-commit-plinux/nodes/rhel8-ppc64le/test/sequential/test-single-executable-application-empty.js:56:1)
17:58:07         at Module._compile (node:internal/modules/cjs/loader:1737:14)
17:58:07         at Object..js (node:internal/modules/cjs/loader:1870:10)
17:58:07         at Module.load (node:internal/modules/cjs/loader:1469:32)
17:58:07         at Module._load (node:internal/modules/cjs/loader:1289:12)
17:58:07         at TracingChannel.traceSync (node:diagnostics_channel:322:14)
17:58:07         at wrapModuleLoad (node:internal/modules/cjs/loader:238:24)
17:58:07         at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
17:58:07         at node:internal/main/run_main_module:33:47 {
17:58:07       command: '/home/iojs/node-tmp/.tmp.4706/sea'
17:58:07     }
17:58:07     
17:58:07     Node.js v25.0.0-pre
17:58:07   ...

These appear to be consistent crashes and not flakes.

I tried to run one of the injected binaries through lldb, but it wasn't helpful(?):

[iojs@test-osuosl-rhel8-ppc64--le-4 sea]$ lldb ./sea
(lldb) target create "./sea"
Current executable set to '/tmp/sea/sea' (powerpc64le).
(lldb) run
Process 1609342 launched: '/tmp/sea/sea' (powerpc64le)
Process 1609342 stopped
* thread #1, name = 'sea', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x7fff8a545c18)
    frame #0: 0x00007fff8a545c18
error: memory read failed for 0x7fff8a545c00
(lldb) [iojs@test-osuosl-rhel8-ppc64--le-4 sea]$

cc @nodejs/single-executable

Metadata

Metadata

Assignees

No one assigned

    Labels

    ppcIssues and PRs related to the Power architecture.single-executableIssues and PRs related to single-executable applications

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions