Closed Bug 979675 Opened 10 years ago Closed 7 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
normal

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)
(In reply to Jordan Santell [:jsantell] [@jsantell] [JSConfing until June 2nd!] from comment #203)
> Looking into this

Hi Jordan - this is still high up on OrangeFactor - have you had any luck digging into this? Would it be best if we disabled the test in the meantime?
Flags: needinfo?(jsantell)
Yes, Ed, I have previously attempted but had no such luck -- can we disable this for the time being? Thanks!
Flags: needinfo?(jsantell)
(In reply to Jordan Santell [:jsantell] [@jsantell] [JSConfing until June 2nd!] from comment #324)
> Yes, Ed, I have previously attempted but had no such luck -- can we disable
> this for the time being? Thanks!

Yeah sgtm - thank you.
Wes, would you mind doing the honours, since upstream? :-)
Flags: needinfo?(kwierso)
Commit pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/8e68d49c71bac4202c689d6d677a8aed77f05dd4
Bug 979675 - Disable child-process tests until they can be fixed r=kwierso
Done. This should go out whenever erikvold does his next uplift.
Flags: needinfo?(kwierso) → needinfo?(evold)
Whiteboard: [leave open]
(In reply to Wes Kocher (:KWierso) from comment #335)
> Done. This should go out whenever erikvold does his next uplift.

Great! Thank you :-)
tracking-e10s: --- → ?
please don't use this site for testing, we have a separate bugzilla instance just for that:
https://landfill.bugzilla.org/bugzilla-tip/
tracking-e10s: ? → ---
Blocks: 1020473
uplift is done
Blocks: 1021280
Flags: needinfo?(evold)
Priority: P1 → --
https://bugzilla.mozilla.org/show_bug.cgi?id=1399562
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.