Closed Bug 979675 Opened 6 years ago Closed 2 years ago

Intermittent test-child_process.testExecFileOptionsMaxBufferLargeStdOut | Exit code is null in exit handler - null == 0 | Signal is SIGTERM in exit handler - "SIGTERM" == null (twice each)

Categories

(Add-on SDK Graveyard :: General, defect)

x86_64
Linux
defect
Not set

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: KWierso, Unassigned)

References

Details

(Keywords: intermittent-failure, Whiteboard: [leave open])

https://tbpl.mozilla.org/php/getParsedLog.php?id=35620120&tree=Mozilla-Central
slave: tst-linux64-spot-565



TEST-PASS | tests/test-child_process.testExecFileOptionsEnvironment | stderr is empty
TEST-PASS | tests/test-child_process.testExecFileOptionsEnvironment | received `cwd` option
TEST-PASS | tests/test-child_process.testExecFileOptionsEnvironment | receives environment option
TEST-END | tests/test-child_process.testExecFileOptionsEnvironment
TEST-START | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | Exit code is null in exit handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | Signal is SIGTERM in exit handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | error contains stderr maxBuffer exceeded message
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | stderr has full buffer
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | stdout is empty
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | Exit code is null in close handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr | Signal is SIGTERM in close handler
TEST-END | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOErr
TEST-START | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut
TEST-UNEXPECTED-FAIL | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | Exit code is null in exit handler - null == 0
TEST-INFO | Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/system/child_process/subprocess.js", line 1617, in _done
    stderr: error,
  File "resource://gre/modules/commonjs/sdk/system/child_process.js", line 79, in initialize/proc<.done
    emit(child, 'exit', child.exitCode, child.signalCode);
  File "resource://gre/modules/commonjs/sdk/event/core.js", line 96, in emit
    listener.apply(target, args);
  File "resource://extensions.modules.0de9c228-7019-46f5-b70d-15cdb23b17c9-at-jetpack.commonjs.path.tests/test-child_process.js", line 210, in exitHandler
    assert.equal(code, null, 'Exit code is null in exit handler');
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 124, in equal
    operator: "=="
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 88, in fail
    this._log.fail(message);
  File "resource://gre/modules/commonjs/sdk/deprecated/unit-test.js", line 83, in fail
    this.console.testMessage(false, false, this.test.name, message);
  File "resource://gre/modules/commonjs/sdk/test/harness.js", line 527, in testMessage
    this.trace();
TEST-UNEXPECTED-FAIL | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | Signal is SIGTERM in exit handler - "SIGTERM" == null
TEST-INFO | Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/system/child_process/subprocess.js", line 1617, in _done
    stderr: error,
  File "resource://gre/modules/commonjs/sdk/system/child_process.js", line 79, in initialize/proc<.done
    emit(child, 'exit', child.exitCode, child.signalCode);
  File "resource://gre/modules/commonjs/sdk/event/core.js", line 96, in emit
    listener.apply(target, args);
  File "resource://extensions.modules.0de9c228-7019-46f5-b70d-15cdb23b17c9-at-jetpack.commonjs.path.tests/test-child_process.js", line 211, in exitHandler
    assert.equal(signal, 'SIGTERM', 'Signal is SIGTERM in exit handler');
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 124, in equal
    operator: "=="
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 88, in fail
    this._log.fail(message);
  File "resource://gre/modules/commonjs/sdk/deprecated/unit-test.js", line 83, in fail
    this.console.testMessage(false, false, this.test.name, message);
  File "resource://gre/modules/commonjs/sdk/test/harness.js", line 527, in testMessage
    this.trace();
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | error contains stdout maxBuffer exceeded message
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | stdout has full buffer
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | stderr is empty
TEST-UNEXPECTED-FAIL | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | Exit code is null in close handler - null == 0
TEST-INFO | Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/system/child_process/subprocess.js", line 1617, in _done
    stderr: error,
  File "resource://gre/modules/commonjs/sdk/system/child_process.js", line 84, in initialize/proc<.done
    emit(child, 'close', child.exitCode, child.signalCode);
  File "resource://gre/modules/commonjs/sdk/event/core.js", line 96, in emit
    listener.apply(target, args);
  File "resource://extensions.modules.0de9c228-7019-46f5-b70d-15cdb23b17c9-at-jetpack.commonjs.path.tests/test-child_process.js", line 216, in closeHandler
    assert.equal(code, null, 'Exit code is null in close handler');
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 124, in equal
    operator: "=="
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 88, in fail
    this._log.fail(message);
  File "resource://gre/modules/commonjs/sdk/deprecated/unit-test.js", line 83, in fail
    this.console.testMessage(false, false, this.test.name, message);
  File "resource://gre/modules/commonjs/sdk/test/harness.js", line 527, in testMessage
    this.trace();
TEST-UNEXPECTED-FAIL | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | Signal is SIGTERM in close handler - "SIGTERM" == null
TEST-INFO | Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/system/child_process/subprocess.js", line 1617, in _done
    stderr: error,
  File "resource://gre/modules/commonjs/sdk/system/child_process.js", line 84, in initialize/proc<.done
    emit(child, 'close', child.exitCode, child.signalCode);
  File "resource://gre/modules/commonjs/sdk/event/core.js", line 96, in emit
    listener.apply(target, args);
  File "resource://extensions.modules.0de9c228-7019-46f5-b70d-15cdb23b17c9-at-jetpack.commonjs.path.tests/test-child_process.js", line 217, in closeHandler
    assert.equal(signal, 'SIGTERM', 'Signal is SIGTERM in close handler');
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 124, in equal
    operator: "=="
  File "resource://gre/modules/commonjs/sdk/test/assert.js", line 88, in fail
    this._log.fail(message);
  File "resource://gre/modules/commonjs/sdk/deprecated/unit-test.js", line 83, in fail
    this.console.testMessage(false, false, this.test.name, message);
  File "resource://gre/modules/commonjs/sdk/test/harness.js", line 527, in testMessage
    this.trace();
TEST-END | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut
TEST-START | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | Exit code is 0 in exit handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | Signal is null in exit handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | error contains stderr maxBuffer exceeded message
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | stderr has full buffer
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | stdout is empty
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | Exit code is 0 in close handler
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr | Signal is null in close handler
TEST-END | tests/test-child_process.testExecFileOptionsMaxBufferSmallStdErr
Priority: -- → P1
If exit is `0` and signal is `null`, it looks like this process exited successfully without being killed for having too large of a buffer. Looking into it.
Although the `execFile` proc is terminating correctly, containing the max buffer error, and a buffer over the limit. Looks like a race condition

TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | error contains stdout maxBuffer exceeded message
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | stdout has full buffer
TEST-PASS | tests/test-child_process.testExecFileOptionsMaxBufferLargeStdOut | stderr is empty
This intermittent failure is #11 on OrangeFactor, and as such worthy of escalation due to https://wiki.mozilla.org/Sheriffing/Test_Disabling_Policy

Needinfo'ing an appropriate person for estimation of next steps & timeframe. The policy requires that I state that after two working days a needinfo on the module owner will be added (if they aren't already), and failing that - the test disabled (or suite hidden if disabling isn't an option) 2 working days after that. But that's an absolutely last resort :-)
Flags: needinfo?(jsantell)
Looking into this
Flags: needinfo?(jsantell)