Skip to content

test: flaky test-net-can-reset-timeout #14241

Description

@refack
  • Version: master
  • Platform: freeBSD
  • Subsystem: test,net,stream

https://ci.nodejs.org/job/node-test-commit-freebsd/10321/nodes=freebsd10-64/

not ok 820 parallel/test-net-can-reset-timeout
  ---
  duration_ms: 2.482
  severity: fail
  stack: |-
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/common/index.js:481:10)
        at Server.<anonymous> (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd10-64/test/common/index.js:513:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
  ...

The test:

'use strict';
const common = require('../common');
const net = require('net');

const server = net.createServer(common.mustCall(function(stream) {
  stream.setTimeout(100);

  stream.resume();

  stream.on('timeout', common.mustCall(function() {
    console.log('timeout');
    // try to reset the timeout.
    stream.write('WHAT.');
  }));

  stream.on('end', function() {
    console.log('server side end');
    stream.end();
  });
}));

server.listen(0, function() {
  const c = net.createConnection(this.address().port);

  c.on('data', function() {
    c.end();
  });

  c.on('end', function() {
    console.log('client side end');
    server.close();
  });
});

/cc @nodejs/testing @nodejs/platform-freebsd @nodejs/streams

P.S. to whomever tackles this, could you add a comment explaining what this is testing a la doc/guides/writing-tests.md

Activity

  1. added
    flaky-testIssues and PRs involving tests that fail intermittently in CI.
    freebsdIssues and PRs related to the FreeBSD platform.
    netIssues and PRs related to the net subsystem.
    streamIssues and PRs related to Node.js streams.
    testIssues and PRs related to Node.js core tests and test infrastructure.
    on Jul 14, 2017
  2. Trott commented on Jul 15, 2017

    @Trott
    Member

    Unsurprisingly, this is an issue with parallelism and is not specific to FreeBSD. It is probably just showing up on FreeBSD because that is one of our more parallelized hosts for tests in CI. It's also likely surfaced due to the start-up performance hit of turning off V8 snapshots; even though this test doesn't use child_process, it's performance is likely impacted by more resources being required by other tests starting up and possibly starting sub-processes in parallel.

    Here is partial output of a reproduction on macOS:

    $ tools/test.py -j 92 --repeat 920 test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
    === release test-net-can-reset-timeout ===                    
    Path: parallel/test-net-can-reset-timeout
    timeout
    timeout
    server side end
    client side end
    Mismatched <anonymous> function calls. Expected exactly 1, actual 2.
        at Object.exports.mustCall (/Users/rtrott/io.js/test/common/index.js:480:10)
        at Server.<anonymous> (/Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js:31:31)
        at Server.<anonymous> (/Users/rtrott/io.js/test/common/index.js:512:15)
        at emitOne (events.js:115:13)
        at Server.emit (events.js:210:7)
        at TCP.onconnection (net.js:1553:8)
    Command: out/Release/node /Users/rtrott/io.js/test/parallel/test-net-can-reset-timeout.js
  3. Trott commented on Jul 15, 2017

    @Trott
    Member

    Problem occurs if the timeout fires more than once which can happen on a heavily loaded host. The test ought to permit timeout firing multiple times. It was written for nodejs/node-v0.x-archive#481.

  4. Trott commented on Jul 15, 2017

    @Trott
    Member

    Fix coming in a few minutes.

  5. Trott commented on Jul 15, 2017

    @Trott
    Member

    Fix is in #14257.

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.freebsdIssues and PRs related to the FreeBSD platform.netIssues and PRs related to the net subsystem.streamIssues and PRs related to Node.js streams.testIssues and PRs related to Node.js core tests and test infrastructure.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions