Skip to content

RPC mode: process exits with "write ENOBUFS" under high-volume stdout streaming #4897

@Mallikarjun-0

Description

@Mallikarjun-0

What happened?

Running pi in RPC mode (--mode rpc), driven by a parent process that reads
pi's stdout over a JSONL protocol. During a long turn that streamed a large
volume of output, the pi process exited non-zero with this on stderr:

node:events:487
      throw er; // Unhandled 'error' event
      ^

Error: write ENOBUFS
    at afterWriteDispatched (node:internal/stream_base_commons:159:15)
    at writevGeneric (node:internal/stream_base_commons:142:3)
    at Socket._writeGeneric (node:net:1023:11)
    at Socket._writev (node:net:1032:8)
    at doWrite (node:internal/streams/writable:594:12)
    at clearBuffer (node:internal/streams/writable:773:5)
    at onwrite (node:internal/streams/writable:651:7)
    at WritableState.onwrite [as callback] (node:internal/streams/writable:350:26)
    at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:105:10)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
  errno: -105,
  code: 'ENOBUFS',
  syscall: 'write'
}

Node.js v24.15.0

Environment

  • pi 0.75.2, Node v24.15.0
  • Linux sandbox (gVisor)
  • The parent process drains pi's stdout; the failing turn produced a high
    volume of streamed output.

Steps to reproduce

Observed in production; not deterministically reproducible. It occurred during
a long turn emitting a high volume of streamed output to stdout while the
parent was draining it.

Metadata

Metadata

Assignees

Labels

inprogressIssue is being worked on

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions