Skip to content

parallel.test-macos-app-sandbox is flaky #54811

Description

@anonrig

Test

parallel.test-macos-app-sandbox

Platform

macOS x64

Console output

---
duration_ms: 11506.516
exitcode: 1
severity: fail
stack: |-
  node:assert:126
    throw new AssertionError(obj);
    ^

  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:

  1 !== 0

      at Object.<anonymous> (/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx11-x64/test/parallel/test-macos-app-sandbox.js:47:8)
      at Module._compile (node:internal/modules/cjs/loader:1546:14)
      at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)
      at Module.load (node:internal/modules/cjs/loader:1317:32)
      at Module._load (node:internal/modules/cjs/loader:1127:12)
      at TracingChannel.traceSync (node:diagnostics_channel:315:14)
      at wrapModuleLoad (node:internal/modules/cjs/loader:217:24)
      at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:166:5)
      at node:internal/main/run_main_module:30:49 {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: 1,
    expected: 0,
    operator: 'strictEqual'
  }

  Node.js v23.0.0-pre
...

Build links

Additional information

No response

Activity

  1. added
    flaky-testIssues and PRs involving tests that fail intermittently in CI.
    on Sep 6, 2024
  2. added
    macosIssues and PRs related to the macOS platform.
    on Sep 6, 2024
  3. aduh95 commented on Sep 6, 2024

    @aduh95
    Contributor

    Cannot reproduce locally on macOS

    $ tools/test.py --repeat 9999 test/parallel/test-macos-app-sandbox.js -t 9 
    [02:34|% 100|+ 9999|-   0]: Done                          
    
    All tests passed.
  4. richardlau commented on Sep 6, 2024

    @richardlau
    Member

    It might be related to the disk space issues on macOS (nodejs/build#3887).

    See #54802 (comment) for some thoughts -- the assertion failure is from spawning a child codesign process:

    It's not impossible, but the test does a free disk space check:

    if (!tmpdir.hasEnoughSpace(120 * 1024 * 1024)) {
    common.skip('Available disk space < 120MB');
    }

    and also the copyfiles are not the lines failing (which would suggest the copies were successful?)

    // Construct the app bundle and put the node executable in it:
    // node_sandboxed.app/
    // └── Contents
    // ├── Info.plist
    // ├── MacOS
    // │ └── node
    fs.mkdirSync(appBundlePath);
    fs.mkdirSync(appBundleContentPath);
    fs.mkdirSync(path.join(appBundleContentPath, 'MacOS'));
    fs.copyFileSync(
    fixtures.path('macos-app-sandbox', 'Info.plist'),
    path.join(appBundleContentPath, 'Info.plist'));
    fs.copyFileSync(
    nodeBinary,
    appExecutablePath);

    The failing line 47 is spawning codesign but it's swallowing any messages from the process to indicate why it failed:

    // Sign the app bundle with sandbox entitlements:
    assert.strictEqual(
    child_process.spawnSync('/usr/bin/codesign', [
    '--entitlements', fixtures.path(
    'macos-app-sandbox', 'node_sandboxed.entitlements'),
    '--force', '-s', '-',
    appBundlePath,
    ]).status,
    0);

    Maybe this could be using the utilities from common/child_process (to take advantage of #54622)?

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    flaky-testIssues and PRs involving tests that fail intermittently in CI.macosIssues and PRs related to the macOS platform.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions