Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flaky: sequential/test-cli-syntax-* #24403

Closed
refack opened this issue Nov 16, 2018 · 31 comments
Closed

flaky: sequential/test-cli-syntax-* #24403

refack opened this issue Nov 16, 2018 · 31 comments
Labels
cli Issues and PRs related to the Node.js command line interface. flaky-test Issues and PRs related to the tests with unstable failures on the CI. test Issues and PRs related to the tests.

Comments

@refack
Copy link
Contributor

refack commented Nov 16, 2018

  • Version: master
  • Platform: Windows 2008R2
  • Subsystem: cli
  • test file - parallel/test-cli-syntax
  • CI job binary-windows/21615/COMPILED_BY=vs2017,RUNNER=win2008r2
  • CI worker test-rackspace-win2008r2-x64-5
  • output:
     11:40:44 not ok 71 parallel/test-cli-syntax
     11:40:44   ---
     11:40:44   duration_ms: 1.229
     11:40:44   severity: fail
     11:40:44   exitcode: 1
     11:40:44   stack: |-
     11:40:44     assert.js:86
     11:40:44       throw new AssertionError(obj);
     11:40:44       ^
     11:40:44     
     11:40:44     AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
     11:40:44     + actual - expected
     11:40:44     
     11:40:44     + 3221225477
     11:40:44     - 1
     11:40:44         at common.mustCall (c:\workspace\node-test-binary-windows\test\parallel\test-cli-syntax.js:59:14)
     11:40:44         at c:\workspace\node-test-binary-windows\test\common\index.js:346:15
     11:40:44         at ChildProcess.exithandler (child_process.js:301:5)
     11:40:44         at ChildProcess.emit (events.js:182:13)
     11:40:44         at maybeClose (internal/child_process.js:977:16)
     11:40:44         at Socket.stream.socket.on (internal/child_process.js:395:11)
     11:40:44         at Socket.emit (events.js:182:13)
     11:40:44         at Pipe._handle.close (net.js:608:12)
     11:40:44   ...\
    
@refack refack added windows Issues and PRs related to the Windows platform. test Issues and PRs related to the tests. cli Issues and PRs related to the Node.js command line interface. flaky-test Issues and PRs related to the tests with unstable failures on the CI. labels Nov 16, 2018
@mhdawson
Copy link
Member

mhdawson commented Nov 20, 2018

Also failed on linux here: https://ci.nodejs.org/job/node-test-commit-linux-containered/8755/nodes=ubuntu1604_sharedlibs_openssl110_x64/consoleFull

21:14:55 not ok 192 parallel/test-cli-syntax
21:14:55   ---
21:14:55   duration_ms: 2.556
21:14:55   severity: fail
21:14:55   exitcode: 1
21:14:55   stack: |-
21:14:55     assert.js:753
21:14:55         throw newErr;
21:14:55         ^
21:14:55     
21:14:55     AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Command failed: /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/node --check /home/iojs/build/workspace/node-test-commit-linux-containered/test/fixtures/syntax/illegal_if_not_wrapped.js
21:14:55     Segmentation fault (core dumped)
21:14:55     
21:14:55         at ChildProcess.exithandler (child_process.js:294:12)
21:14:55         at ChildProcess.emit (events.js:189:13)
21:14:55         at maybeClose (internal/child_process.js:977:16)
21:14:55         at Socket.stream.socket.on (internal/child_process.js:395:11)
21:14:55         at Socket.emit (events.js:189:13)
21:14:55         at Pipe._handle.close (net.js:608:12)
21:14:55   ...

Worker: https://ci.nodejs.org/computer/test-joyent-ubuntu1604_sharedlibs_container-x64-4/
Config: ubuntu1604_sharedlibs_openssl110_x64

@Trott
Copy link
Member

Trott commented Nov 23, 2018

@mhdawson Core dumped? Yikes! Hopefully build-related and not related to the test? @nodejs/build

@refack
Copy link
Contributor Author

refack commented Nov 23, 2018

Core dumped? Yikes!

IIUC the core dump was for the tested spawned child process, not the testing process.

const cmd = [node, ..._args].join(' ');
exec(cmd, common.mustCall((err, stdout, stderr) => {
assert.ifError(err);
assert.strictEqual(stdout, '');
assert.strictEqual(stderr, '');
}));

Trott pushed a commit to Trott/io.js that referenced this issue Dec 1, 2018
To help debugging the flake with the log from the CI.

PR-URL: nodejs#24720
Refs: nodejs#24403
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
@addaleax
Copy link
Member

addaleax commented Dec 4, 2018

Managed to get a core dump locally; interesting parts of the thread stack traces:

Thread 7 (Thread 0x7fd3e1708740 (LWP 32401)):
#0  _int_free (have_lock=0, p=0x557d4eedc500, av=0x7fd3e05a3c40 <main_arena>) at malloc.c:4167
#1  __GI___libc_free (mem=0x557d4eedc510) at malloc.c:3124
#2  0x0000557d4d144471 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*) ()
#3  0x0000557d4d1445e8 in node::native_module::NativeModuleLoader::~NativeModuleLoader() ()
#4  0x00007fd3e01fb041 in __run_exit_handlers (status=0, listp=0x7fd3e05a3718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#5  0x00007fd3e01fb13a in __GI_exit (status=<optimized out>) at exit.c:139
#6  0x0000557d4d113131 in node::Environment::Exit(int) ()
#7  0x0000557d4d1388d1 in node::Exit(v8::FunctionCallbackInfo<v8::Value> const&) ()
#8  0x0000557d4d3b1237 in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ()
#9  0x0000557d4d3b2558 in v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) ()
#10 0x00001c51e784fb5d in ?? ()
#11 0x00001c51e7884b30 in ?? ()
#12 0x00001c51e784fac1 in ?? ()
#13 0x00007ffef03e0990 in ?? ()
#14 0x0000000000000006 in ?? ()

[...]

Thread 1 (Thread 0x7fd3df9b6700 (LWP 32404)):
#0  0x0000557d4ef3a400 in ?? ()
#1  0x0000557d4d6eb6dc in v8::internal::ArrayBufferCollector::FreeingTask::RunInternal() ()
#2  0x0000557d4d1cbc45 in node::(anonymous namespace)::PlatformWorkerThread(void*) ()
#3  0x00007fd3e05b06db in start_thread (arg=0x7fd3df9b6700) at pthread_create.c:463
#4  0x00007fd3e02d988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

I feel like I’ve been seeing a lot more issues based on race conditions with C++ destructors being run from __run_exit_handlers(), but before all threads are torn down… I’m not sure what would have caused that change. Should we maybe be calling _exit() instead? Is there a way to first stop all other threads?

/cc @joyeecheung

@addaleax addaleax removed the windows Issues and PRs related to the Windows platform. label Dec 4, 2018
addaleax added a commit to addaleax/node that referenced this issue Dec 4, 2018
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of the
V8 platform instance helps with this (although it might not be a full
solution for all problems of this kind).

Fixes: nodejs#24403
@joyeecheung
Copy link
Member

About the specific stack trace, was the destructor being called when one of the strings on the native module loader was already destroyed? I think the std::strings on the loader should all be local to it, so it's kind of difficult to how would the order be reversed..

On the race condition in general, is the current expectation to destroy all the per-process globals only after all the threads are torn down? I wonder if using shared_ptr for these globals would help, but that probably doesn't actually solve the root cause..

@addaleax
Copy link
Member

addaleax commented Dec 4, 2018

Potential fix is in #24828 :)

@addaleax
Copy link
Member

addaleax commented Dec 4, 2018

And no, I don’t think this is about the specific stack trace – it’s probably some destructor that was called earlier that destroyed some resource on which the V8 platform worker thread relied, or something similar, I would say.

@Fishrock123
Copy link
Contributor

Another failure:

assert.js:86
  throw new AssertionError(obj);
  ^

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

139 !== 1

    at common.mustCall (/home/iojs/build/workspace/node-test-commit-linux-containered/test/parallel/test-cli-syntax.js:97:14)
    at /home/iojs/build/workspace/node-test-commit-linux-containered/test/common/index.js:346:15
    at ChildProcess.exithandler (child_process.js:301:5)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:977:16)
    at Socket.stream.socket.on (internal/child_process.js:395:11)
    at Socket.emit (events.js:189:13)
    at Pipe._handle.close (net.js:612:12)

@MylesBorins
Copy link
Contributor

another failure

assert.js:86
  throw new AssertionError(obj);
  ^

AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected

+ 3221225477
- 1
    at common.mustCall (c:\workspace\node-test-binary-windows\test\parallel\test-cli-syntax.js:65:14)
    at c:\workspace\node-test-binary-windows\test\common\index.js:346:15
    at ChildProcess.exithandler (child_process.js:301:5)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:977:16)
    at Socket.stream.socket.on (internal/child_process.js:395:11)
    at Socket.emit (events.js:189:13)
    at Pipe._handle.close (net.js:612:12)

@joyeecheung
Copy link
Member

Interestingly, this only seems to happen with this specific test, it seems somehow -c triggers the race condition more often than the others, see nodejs/reliability#19

@Trott
Copy link
Member

Trott commented Dec 5, 2018

This is happening so often that I guess there's not much to be gained in pointing out when it happens much anymore, but here's one anyway:

https://ci.nodejs.org/job/node-test-commit-aix/19414/nodes=aix61-ppc64/consoleText

not ok 286 parallel/test-cli-syntax
  ---
  duration_ms: 24.538
  severity: fail
  exitcode: 1
  stack: |-
    assert.js:86
      throw new AssertionError(obj);
      ^
    
    AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
    
    null !== 1
    
        at common.mustCall (/home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/parallel/test-cli-syntax.js:97:14)
        at /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/common/index.js:346:15
        at ChildProcess.exithandler (child_process.js:301:5)
        at ChildProcess.emit (events.js:189:13)
        at maybeClose (internal/child_process.js:977:16)
        at Socket.stream.socket.on (internal/child_process.js:395:11)
        at Socket.emit (events.js:189:13)
        at Pipe._handle.close (net.js:612:12)
  ...

@addaleax
Copy link
Member

addaleax commented Dec 5, 2018

@Fishrock123 @MylesBorins @Trott Yes, there’s not much point in this output by itself. What might actually help is core dumps + the accompanying binaries.

BridgeAR pushed a commit that referenced this issue Dec 5, 2018
To help debugging the flake with the log from the CI.

PR-URL: #24720
Refs: #24403
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
@Trott
Copy link
Member

Trott commented Dec 7, 2018

Because this test spawns so many subprocesses asynchronously, it's very easy to recreate this test failing both in the ways reported above and other ways.

$ tools/test.py -j 32 --repeat 32 test/parallel/test-cli-syntax.js 
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
out/Release/node[62754]: ../src/spawn_sync.cc:464:Maybe<bool> node::SyncProcessRunner::TryInitializeAndRunLoop(Local<v8::Value>): Assertion `(uv_loop_init(uv_loop_)) == (0)' failed.
 1: 0x10005f18b node::Abort() [/Users/trott/io.js/out/Release/node]
 2: 0x10005f0c8 node::PrintErrorString(char const*, ...) [/Users/trott/io.js/out/Release/node]
 3: 0x1000d78a3 node::SyncProcessRunner::TryInitializeAndRunLoop(v8::Local<v8::Value>) [/Users/trott/io.js/out/Release/node]
 4: 0x1000d7534 node::SyncProcessRunner::Run(v8::Local<v8::Value>) [/Users/trott/io.js/out/Release/node]
 5: 0x1000d7429 node::SyncProcessRunner::Spawn(v8::FunctionCallbackInfo<v8::Value> const&) [/Users/trott/io.js/out/Release/node]
 6: 0x10022df6b v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) [/Users/trott/io.js/out/Release/node]
 7: 0x10022d48d v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/trott/io.js/out/Release/node]
 8: 0x10022cbdc v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/trott/io.js/out/Release/node]
 9: 0x100dea84e v8_Default_embedded_blob_ [/Users/trott/io.js/out/Release/node]
10: 0x12bdae20816e 
11: 0x12bdae20816e
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
--- CRASHED (Signal: 6) ---
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
out/Release/node[62761]: ../src/spawn_sync.cc:464:Maybe<bool> node::SyncProcessRunner::TryInitializeAndRunLoop(Local<v8::Value>): Assertion `(uv_loop_init(uv_loop_)) == (0)' failed.
 1: 0x10005f18b node::Abort() [/Users/trott/io.js/out/Release/node]
 2: 0x10005f0c8 node::PrintErrorString(char const*, ...) [/Users/trott/io.js/out/Release/node]
 3: 0x1000d78a3 node::SyncProcessRunner::TryInitializeAndRunLoop(v8::Local<v8::Value>) [/Users/trott/io.js/out/Release/node]
 4: 0x1000d7534 node::SyncProcessRunner::Run(v8::Local<v8::Value>) [/Users/trott/io.js/out/Release/node]
 5: 0x1000d7429 node::SyncProcessRunner::Spawn(v8::FunctionCallbackInfo<v8::Value> const&) [/Users/trott/io.js/out/Release/node]
 6: 0x10022df6b v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) [/Users/trott/io.js/out/Release/node]
 7: 0x10022d48d v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/trott/io.js/out/Release/node]
 8: 0x10022cbdc v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/trott/io.js/out/Release/node]
 9: 0x100dea84e v8_Default_embedded_blob_ [/Users/trott/io.js/out/Release/node]
10: 0x319db550816e 
11: 0x319db550816e
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
--- CRASHED (Signal: 6) ---
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== 0

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:112:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== ''

    at /Users/trott/io.js/test/parallel/test-cli-syntax.js:109:10
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/Users/trott/io.js/test/parallel/test-cli-syntax.js:104:12)
    at Module._compile (internal/modules/cjs/loader.js:723:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
    at executeUserCode (internal/bootstrap/node.js:341:15)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
-- stdout --

-- stderr --
assert.js:753
    throw newErr;
    ^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: spawn /bin/sh ENFILE
    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:43:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at exithandler (child_process.js:301:5)
    at ChildProcess.errorhandler (child_process.js:313:5)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:252:12)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:19)
    at onErrorNT (internal/child_process.js:422:16)
    at internalTickCallback (internal/process/next_tick.js:72:19)
    at process._tickCallback (internal/process/next_tick.js:47:5)
    at Function.Module.runMain (internal/modules/cjs/loader.js:779:11)
    at executeUserCode (internal/bootstrap/node.js:341:15)
    at startExecution (internal/bootstrap/node.js:275:3)
    at startup (internal/bootstrap/node.js:226:3)
    at internal/bootstrap/node.js:706:1
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

null !== 1

    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:65:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at ChildProcess.exithandler (child_process.js:301:5)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:978:16)
    at Socket.stream.socket.on (internal/child_process.js:396:11)
    at Socket.emit (events.js:189:13)
    at Pipe._handle.close (net.js:612:12)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

'ENFILE' !== 1

    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:65:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at exithandler (child_process.js:301:5)
    at ChildProcess.errorhandler (child_process.js:313:5)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:252:12)
    at onErrorNT (internal/child_process.js:422:16)
    at internalTickCallback (internal/process/next_tick.js:72:19)
    at process._tickCallback (internal/process/next_tick.js:47:5)
    at Function.Module.runMain (internal/modules/cjs/loader.js:779:11)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:351
    throw err;
    ^

AssertionError [ERR_ASSERTION]: /^SyntaxError: \b/m === fs.js:121
    throw err;
    ^

Error: ENFILE: file table overflow, open '/Users/trott/io.js/test/fixtures/syntax/bad_syntax_shebang.js'
    at Object.openSync (fs.js:450:3)
    at Object.readFileSync (fs.js:350:35)
    at executeUserCode (internal/bootstrap/node.js:332:25)
    at startExecution (internal/bootstrap/node.js:275:3)
    at startup (internal/bootstrap/node.js:226:3)
    at internal/bootstrap/node.js:706:1

    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:71:7)
    at /Users/trott/io.js/test/common/index.js:346:15
    at ChildProcess.exithandler (child_process.js:301:5)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:978:16)
    at Socket.stream.socket.on (internal/child_process.js:396:11)
    at Socket.emit (events.js:189:13)
    at Pipe._handle.close (net.js:612:12)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
-- stdout --

-- stderr --
assert.js:753
    throw newErr;
    ^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: spawn /bin/sh EAGAIN
    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:43:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at exithandler (child_process.js:301:5)
    at ChildProcess.errorhandler (child_process.js:313:5)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:252:12)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:19)
    at onErrorNT (internal/child_process.js:422:16)
    at internalTickCallback (internal/process/next_tick.js:72:19)
    at process._tickCallback (internal/process/next_tick.js:47:5)
    at Function.Module.runMain (internal/modules/cjs/loader.js:779:11)
    at executeUserCode (internal/bootstrap/node.js:341:15)
    at startExecution (internal/bootstrap/node.js:275:3)
    at startup (internal/bootstrap/node.js:226:3)
    at internal/bootstrap/node.js:706:1
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
assert.js:86
  throw new AssertionError(obj);
  ^

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

'EAGAIN' !== 1

    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:65:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at exithandler (child_process.js:301:5)
    at ChildProcess.errorhandler (child_process.js:313:5)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:252:12)
    at onErrorNT (internal/child_process.js:422:16)
    at internalTickCallback (internal/process/next_tick.js:72:19)
    at process._tickCallback (internal/process/next_tick.js:47:5)
    at Function.Module.runMain (internal/modules/cjs/loader.js:779:11)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
=== release test-cli-syntax ===                   
Path: parallel/test-cli-syntax
-- stdout --

-- stderr --
assert.js:753
    throw newErr;
    ^

AssertionError [ERR_ASSERTION]: ifError got unwanted exception: spawn /bin/sh EAGAIN
    at common.mustCall (/Users/trott/io.js/test/parallel/test-cli-syntax.js:43:14)
    at /Users/trott/io.js/test/common/index.js:346:15
    at exithandler (child_process.js:301:5)
    at ChildProcess.errorhandler (child_process.js:313:5)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:252:12)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:19)
    at onErrorNT (internal/child_process.js:422:16)
    at internalTickCallback (internal/process/next_tick.js:72:19)
    at process._tickCallback (internal/process/next_tick.js:47:5)
    at Function.Module.runMain (internal/modules/cjs/loader.js:779:11)
    at executeUserCode (internal/bootstrap/node.js:341:15)
    at startExecution (internal/bootstrap/node.js:275:3)
    at startup (internal/bootstrap/node.js:226:3)
    at internal/bootstrap/node.js:706:1
Command: out/Release/node /Users/trott/io.js/test/parallel/test-cli-syntax.js
[00:18|% 100|+   7|-  25]: Done                   
$ 

@Trott
Copy link
Member

Trott commented Dec 15, 2018

Some of these failing tests have been modified to try to produce more information, but alas, nothing useful in this case. All the error message stuff after null !== 1 in the output below is (I believe) the error that is expected by the test. It is just the code that is missing/wrong, which we already knew.

https://ci.nodejs.org/job/node-test-commit-aix/19747/nodes=aix61-ppc64/console

test-osuosl-aix61-ppc64_be-2

01:44:30 not ok 2391 sequential/test-cli-syntax-file-not-found # TODO : Fix flaky test
01:44:30   ---
01:44:30   duration_ms: 3.206
01:44:30   severity: flaky
01:44:30   exitcode: 1
01:44:30   stack: |-
01:44:30     assert.js:86
01:44:30       throw new AssertionError(obj);
01:44:30       ^
01:44:30     
01:44:30     AssertionError [ERR_ASSERTION]: code null !== 1 for error:
01:44:30     
01:44:30     Error: Command failed: /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/node -c /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/fixtures/syntax/file_not_found.js
01:44:30     internal/modules/cjs/loader.js:602
01:44:30         throw err;
01:44:30         ^
01:44:30     
01:44:30     Error: Cannot find module '/home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/fixtures/syntax/file_not_found.js'
01:44:30         at Function.Module._resolveFilename (internal/modules/cjs/loader.js:600:15)
01:44:30         at executeUserCode (internal/bootstrap/node.js:307:34)
01:44:30         at startExecution (internal/bootstrap/node.js:251:3)
01:44:30         at startup (internal/bootstrap/node.js:202:3)
01:44:30         at internal/bootstrap/node.js:692:1
01:44:30     
01:44:30         at common.mustCall (/home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/sequential/test-cli-syntax-file-not-found.js:36:14)
01:44:30         at /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/test/common/index.js:335:15
01:44:30         at ChildProcess.exithandler (child_process.js:301:5)
01:44:30         at ChildProcess.emit (events.js:189:13)
01:44:30         at maybeClose (internal/child_process.js:978:16)
01:44:30         at Socket.stream.socket.on (internal/child_process.js:396:11)
01:44:30         at Socket.emit (events.js:189:13)
01:44:30         at Pipe._handle.close (net.js:612:12)
01:44:30   ...

@addaleax
Copy link
Member

@Trott I don’t think we’ll find useful information on the JS side… maybe this is a good reason to figure out a way to make core dumps from CI available for download somehow?

addaleax added a commit to addaleax/node that referenced this issue Dec 15, 2018
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: nodejs#24403
Refs: nodejs#25007
BethGriggs pushed a commit that referenced this issue Dec 17, 2018
It is unreliable under load and the CI failures are getting a bit out of
hand. Let's move it to sequential.

Refs: #24403

PR-URL: #24907
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this issue Dec 17, 2018
Refs: #24403

PR-URL: #24957
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
addaleax added a commit that referenced this issue Jan 12, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: #24403
Refs: #25007

PR-URL: #25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
refack pushed a commit to refack/node that referenced this issue Jan 14, 2019
To help debugging the flake with the log from the CI.

PR-URL: nodejs#24720
Refs: nodejs#24403
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
refack pushed a commit to refack/node that referenced this issue Jan 14, 2019
It is unreliable under load and the CI failures are getting a bit out of
hand. Let's move it to sequential.

Refs: nodejs#24403

PR-URL: nodejs#24907
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
refack pushed a commit to refack/node that referenced this issue Jan 14, 2019
Refs: nodejs#24403

PR-URL: nodejs#24957
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
addaleax added a commit that referenced this issue Jan 14, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: #24403
Refs: #25007

PR-URL: #25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
BridgeAR pushed a commit to BridgeAR/node that referenced this issue Jan 16, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: nodejs#24403
Refs: nodejs#25007

PR-URL: nodejs#25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
@gireeshpunathil
Copy link
Member

this should be good to close now; ncu data did now show this up.
cc @refack @Trott

@Trott
Copy link
Member

Trott commented Feb 5, 2019

Agreed: Not seeing it in ncu-ci data. Closing. Obviously, re-open if I'm wrong.

@Trott Trott closed this as completed Feb 5, 2019
BethGriggs pushed a commit that referenced this issue Feb 12, 2019
To help debugging the flake with the log from the CI.

PR-URL: #24720
Refs: #24403
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
BethGriggs pushed a commit that referenced this issue Feb 12, 2019
It is unreliable under load and the CI failures are getting a bit out of
hand. Let's move it to sequential.

Refs: #24403

PR-URL: #24907
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this issue Feb 12, 2019
Refs: #24403

PR-URL: #24957
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
BethGriggs pushed a commit that referenced this issue Feb 13, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: #24403
Refs: #25007

Backport-PR-URL: #26048
PR-URL: #25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
BethGriggs pushed a commit that referenced this issue Feb 20, 2019
It is unreliable under load and the CI failures are getting a bit out of
hand. Let's move it to sequential.

Refs: #24403

PR-URL: #24907
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this issue Feb 20, 2019
Refs: #24403

PR-URL: #24957
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
rvagg pushed a commit that referenced this issue Feb 28, 2019
To help debugging the flake with the log from the CI.

PR-URL: #24720
Refs: #24403
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
rvagg pushed a commit that referenced this issue Feb 28, 2019
It is unreliable under load and the CI failures are getting a bit out of
hand. Let's move it to sequential.

Refs: #24403

PR-URL: #24907
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
rvagg pushed a commit that referenced this issue Feb 28, 2019
Refs: #24403

PR-URL: #24957
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
BethGriggs pushed a commit to MylesBorins/node that referenced this issue Mar 27, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: nodejs#24403
Refs: nodejs#25007

PR-URL: nodejs#25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
BethGriggs pushed a commit that referenced this issue Mar 28, 2019
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).

Refs: #24403
Refs: #25007

Backport-PR-URL: #26048
PR-URL: #25061
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cli Issues and PRs related to the Node.js command line interface. flaky-test Issues and PRs related to the tests with unstable failures on the CI. test Issues and PRs related to the tests.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants