Repository navigation
Flaky test: parallel/test-tls-ticket-cluster #29341
Copy link
Copy link
Closed as not planned
Labels
child_processIssues and PRs related to the child_process subsystem.Issues and PRs related to the child_process subsystem.flaky-testIssues and PRs involving tests that fail intermittently in CI.Issues and PRs involving tests that fail intermittently in CI.macosIssues and PRs related to the macOS platform.Issues and PRs related to the macOS platform.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.tlsIssues and PRs related to the tls subsystem.Issues and PRs related to the tls subsystem.
Description
- Version: master
- Platform: test-macstadium-macos10.11-x64-1
- Subsystem: test
04:34:35 not ok 2094 parallel/test-tls-ticket-cluster
04:34:35 ---
04:34:35 duration_ms: 0.579
04:34:35 severity: fail
04:34:35 exitcode: 1
04:34:35 stack: |-
04:34:35 [master] got "listening"
04:34:35 [master] connecting 60380 session? false
04:34:35 [worker] connection reused? false
04:34:35 [master] got "not-reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [master] got "listening"
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [master] connecting 60380 session? true
04:34:35 [worker] connection reused? true
04:34:35 [master] got "reused"
04:34:35 [worker] got "die"
04:34:35 [worker] server close
04:34:35 [worker] exit
04:34:35 [worker] got "die"
04:34:35 [worker] server close
04:34:35 [worker] exit
04:34:35 [worker] got "die"
04:34:35 [worker] server close
04:34:35 [worker] exit
04:34:35 [worker] got "die"
04:34:35 [worker] server close
04:34:35 [worker] exit
04:34:35 events.js:186
04:34:35 throw er; // Unhandled 'error' event
04:34:35 ^
04:34:35
04:34:35 Error: write EPIPE
04:34:35 at ChildProcess.target._send (internal/child_process.js:813:20)
04:34:35 at ChildProcess.target.send (internal/child_process.js:683:19)
04:34:35 at sendHelper (internal/cluster/utils.js:22:15)
04:34:35 at send (internal/cluster/master.js:351:10)
04:34:35 at internal/cluster/master.js:317:5
04:34:35 at done (internal/cluster/round_robin_handle.js:46:7)
04:34:35 at RoundRobinHandle.add (internal/cluster/round_robin_handle.js:55:12)
04:34:35 at queryServer (internal/cluster/master.js:311:10)
04:34:35 at Worker.onmessage (internal/cluster/master.js:246:5)
04:34:35 at ChildProcess.onInternalMessage (internal/cluster/utils.js:43:8)
04:34:35 Emitted 'error' event on Worker instance at:
04:34:35 at ChildProcess.<anonymous> (internal/cluster/worker.js:27:12)
04:34:35 at ChildProcess.emit (events.js:209:13)
04:34:35 at internal/child_process.js:817:39
04:34:35 at processTicksAndRejections (internal/process/task_queues.js:75:11) {
04:34:35 errno: -32,
04:34:35 code: 'EPIPE',
04:34:35 syscall: 'write'
04:34:35 }
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
child_processIssues and PRs related to the child_process subsystem.Issues and PRs related to the child_process subsystem.flaky-testIssues and PRs involving tests that fail intermittently in CI.Issues and PRs involving tests that fail intermittently in CI.macosIssues and PRs related to the macOS platform.Issues and PRs related to the macOS platform.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.tlsIssues and PRs related to the tls subsystem.Issues and PRs related to the tls subsystem.
Activity
mscdex commentedon Aug 28, 2019
/cc @nodejs/cluster ?
Trott commentedon Aug 28, 2019
Also on FreeBSD:
https://ci.nodejs.org/job/node-test-commit-freebsd/28120/nodes=freebsd11-x64/console
Trott commentedon Aug 28, 2019
I'm so far unable to replicate this locally, but EPIPE can happen if you try to write to a closed stream, and there have been some changes to streams lately... @nodejs/streams? @ronag?
lpinca commentedon Aug 31, 2019
I can reproduce with
and bisecting points to 4367732 as first bad commit.
@nodejs/libuv
bnoordhuis commentedon Aug 31, 2019
That probably means libuv/libuv@ee24ce9 is responsible (cc @addaleax) but that also means it's probably exposing a latent bug in Node.js (edit: or the test), not introducing a new one.
The sole
uv_try_write()caller is below and thaterr == UV_EAGAINcheck looks highly suspect:node/src/stream_wrap.cc
Lines 350 to 354 in 98b7185
addaleax commentedon Aug 31, 2019
It looks more like issues with the cluster/child process code to me… currently, synchronous write errors from
.send()are reported (but there is an ancient undocumented option to turn that off,swallowErrors), while asynchronous write errors are always discarded silently.It generally also looks like there’s very little error handling in the
clustermodule in general, and in particular, there’s this bit that’s also in the stack trace:node/lib/internal/cluster/round_robin_handle.js
Lines 45 to 48 in 98b7185
Judging from the commit message of 0da4e0e (which added
swallowErrors), I’d think it make sense to add that flag for internal cluster messages, too./cc @cjihrig
I think
UV_ENOSYSandUV_EAGAINare precisely the return values that indicate that it makes sense to useuv_write()after a faileduv_try_write(), correct?bnoordhuis commentedon Sep 1, 2019
Yes, but before libuv/libuv@ee24ce9 that path was always taken. The
if (err < 0)below was dead code but now it's not.MylesBorins commentedon Apr 1, 2020
This failure is showing up on v10.x now, specifically on centos7. Did this get figured out on master? Should we mark it as flaky?
Trott commentedon Apr 4, 2020
Using
ncu-ci walk, I can only find one recent example, and it's a node-daily-v10.x-staging daily job.puzpuzpuz commentedon Apr 23, 2020
Saw this one failing on OS X today: https://ci.nodejs.org/job/node-test-commit-osx/33696/nodes=osx1015/testReport/junit/(root)/test/parallel_test_tls_ticket_cluster/
github-actions commentedon Jun 27, 2026
This issue has been marked as stale due to 210 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.
github-actions commentedon Jul 28, 2026
This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.