Skip to content

node --report-on-process-timeout writes truncated report when a Worker is blocked #66303

Description

@trivikr

Version

main

Platform

All

Subsystem

report

What steps will reproduce the bug?

import { Worker } from 'node:worker_threads';

new Worker(`require('node:child_process').execFileSync('sleep', ['30']);`, { eval: true });

Run with

$ node --process-timeout=1s --report-on-process-timeout repro.js

How often does it reproduce? Is there a required condition?

Always

What is the expected behavior? Why is that the expected behavior?

A complete, valid JSON report is written. Blocked Workers could be left out or marked as unresponsive. A stuck Worker is exactly the case where you'd want the report. The forced-exit message should also start on its own line.

What do you see instead?

(node:2291000) Process timed out after 1s (--process-timeout). Exiting with code 124.
Main thread was not executing JavaScript.
Resources keeping the event loop alive:
    Worker (thread 1, name 'WorkerThread')

Writing Node.js report to file: report.20260925.212601.2291000.0.001.json(node:2291000) The process did not finish exiting within 5000ms after --process-timeout expired. Forcing exit.
$ node -e "JSON.parse(require('fs').readFileSync('report.20260925.212601.2291000.0.001.json'))"
SyntaxError: Expected property name or '}' in JSON at position 8192 (line 338 column 9)

Additional information

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

reportIssues and PRs related to Node.js diagnostic reports.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions