8000 Diagnostic report does not report javascriptStack - making it essentially useless · Issue #34896 · nodejs/node · GitHub
[go: up one dir, main page]

Skip to content

Diagnostic report does not report javascriptStack - making it essentially useless #34896

@zen0wu

Description

@zen0wu
  • Version: 12.18.3
  • Platform: macOS and Linux
  • Subsystem:

What steps will reproduce the bug?

Here's a sample program I wrote to repro the issue.

function sleep(ms) {
	return new Promise(res => setTimeout(res, ms))
}

async function h() {
	for (let i = 0; i < 10000; i++) {
		try {
			throw new Error("BAH")
		} catch (e) {
			await sleep(6)
		}
	}
}

async function g() {
	await h()
}

async function f() {
	await g()
}

f()

Running this with

node --experimental-report --report-on-signal test.js &
# and then
kill -USR2 <PID>

View the report file.

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

Reproduce every time.

What is the expected behavior?

I tested the same program with Node 10 + node-report. A stack trace is reported.

==== JavaScript Stack Trace ====================================================

JavaScript VM state: <unknown>

 0: [pc=0x1dedf9ce74b3] sleep (/Users/zeno/Developer/tmp/node/diag.js:1:77)
 1: [pc=0x1dedf9ce7071] h (/Users/zeno/Developer/tmp/node/diag.js:10:10)

What do you see instead?

"javascriptStack": {
    "message": "No stack.",
    "stack": [
      "Unavailable."
    ],
    "errorProperties": {
    }
  }

Additional information

Note that this is not a consistent behavior - sometimes node 10 also reports No stack trace, but I've repeatedly tested Node 12 and no stack trace is reported, ever (after about seeing 40 reports). This is definitely a better way to reproduce this, but I do believe there's a pattern here. The example above is for demonstration purpose. This also applies with a real world express application.

Without the javascriptStack, it renders the diagnostic report useless - Basically all other info can be obtained easily and not as useful for debugging.

Let me know if any further info is needed. I believe this is a high-pri breakage on a major feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidIssues and PRs that are invalid.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships< 2EC5 /h3>

    None yet

    Development

    No branches or pull requests

    Issue actions

      0