Skip to content
This repository has been archived by the owner on Oct 16, 2021. It is now read-only.

Commit

Permalink
test: Fix test-cluster-worker-exit.js for AIX
Browse files Browse the repository at this point in the history
cherry-pick following from master

Author: Imran Iqbal <imrani@ca.ibm.com>
Date:   Wed Nov 4 17:08:07 2015 -0500

    test: Fix test-cluster-worker-exit.js for AIX

    test fails intermittently due to the assertion that the 'disconnect'
    event should come before the 'exit' event. This is caused be the
    non-deteministic behaviour of pollset_poll[1] on AIX
    (see deps/uv/src/unix/aix.c). This API makes no garauntee for the
order
    in which file descriptors are returned. On linux epoll_wait[2] is
used,
    which also does not make a garauntee on order of file descriptors
    returned. In the failing case we recieve our file descriptor with a
    callback of uv__signal_event (which causes JavaScript to receive the
    exit event) before our file descriptor with uv__stream_io as its
    callback (which in turn causes JavaScript receive the disconnect
event).
    This change simply removes the assertion that the disconnect event
    happens before exit event and processes the test regardless of which
    event comes first.

    [1]
https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.ai
    x.basetrf1/pollset.htm
    [2] http://linux.die.net/man/2/epoll_pwait

    PR-URL: nodejs/node#3666
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
jBarz committed Feb 19, 2017
1 parent 6b68c09 commit 7757ef9
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions test/simple/test-cluster-worker-exit.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,16 @@ if (cluster.isWorker) {
results.cluster_exitCode = worker.process.exitCode;
results.cluster_signalCode = worker.process.signalCode;
results.cluster_emitExit += 1;
assert.ok(results.cluster_emitDisconnect,
"cluster: 'exit' event before 'disconnect' event");
});

// Check worker events and properties
worker.on('disconnect', function() {
results.worker_emitDisconnect += 1;
results.worker_suicideMode = worker.suicide;
results.worker_state = worker.state;
if (results.worker_emitExit > 0) {
process.nextTick(function() { finish_test(); });
}
});

// Check that the worker died
Expand Down

0 comments on commit 7757ef9

Please sign in to comment.