Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node --prof-process does not work on node 8.x #22825

Closed
joseph-jja opened this issue Sep 12, 2018 · 14 comments
Closed

node --prof-process does not work on node 8.x #22825

joseph-jja opened this issue Sep 12, 2018 · 14 comments

Comments

@joseph-jja
Copy link

node 8.11.x
mac 10.11.6
uname -a => Darwin FSCAM1VFG8WM 15.6.0 Darwin Kernel Version 15.6.0: Tue Jan 9 20:12:05 PST 2018; root:xnu-3248.73.5~1/RELEASE_X86_64 x86_64

Run your app with node -prof and it generates the isolate* log file(s)

Then run node --prof-process and it either hangs ( 8.11.x ) or spits out the error below (8.12.rc-x)

ReferenceError: printErr is not defined
at TickProcessor.printError (evalmachine.:2770:3)
at TickProcessor.LogReader.processLog_ (evalmachine.:2522:12)
at TickProcessor.LogReader.processLogLine (evalmachine.:2405:10)
at TickProcessor.processLogFile (evalmachine.:2798:10)
at evalmachine.:3980:15
at internal/v8_prof_processor.js:41:28
at NativeModule.compile (bootstrap_node.js:613:7)
at Function.NativeModule.require (bootstrap_node.js:558:18)
at startup (bootstrap_node.js:150:20)
at bootstrap_node.js:625:3

try running node prof process with node 8.11.3 or later on these files. It just hangs after spitting out a bunch of text about code mode events for unknown.

isolate-0x102804600-v8.log
isolate-0x103800000-v8.log

@richardlau
Copy link
Member

At a guess, I suspect we need to backport #19285.

@addaleax
Copy link
Member

The commit applies cleanly, so I’ve pushed it to v8.x-staging (2ae98ce)

@richardlau
Copy link
Member

richardlau commented Sep 13, 2018

On a local Linux system I can recreate the issue described with a built from source v8.12.0 using the isolate logs in the OP. Interestingly all tick-processor tests pass though, which suggests a gap in our testing (although tick-processor is in the ignored suites

node/tools/test.py

Lines 1539 to 1552 in 1519657

# these suites represent special cases that should not be run as part of the
# default JavaScript test-run, e.g., internet/ requires a network connection,
# addons/ requires compilation.
IGNORED_SUITES = [
'addons',
'addons-napi',
'doctool',
'gc',
'internet',
'pummel',
'test-known-issues',
'tick-processor',
'timers'
]
so I'm not even sure when the last time it was run on v8.x).

With the current v8.x-staging (i.e. with 2ae98ce) the provided isolate logs are processed with errors (which is why printErr was being called) but does not hang.

@mcollina
Copy link
Member

mcollina commented Sep 20, 2018

I was able to workaround this in 0x by filtering out extremely long lines: davidmarkclements/0x#172.

@joseph-jja
Copy link
Author

I finally got around to installing 8.12.0 and I still get this issue. What 8.x is this fixed in, that this issue got closed?

evalmachine.:2770
printErr(str);
^

ReferenceError: printErr is not defined
at TickProcessor.printError (evalmachine.:2770:3)
at TickProcessor.LogReader.processLog_ (evalmachine.:2522:12)
at TickProcessor.LogReader.processLogLine (evalmachine.:2405:10)
at TickProcessor.processLogFile (evalmachine.:2798:10)
at evalmachine.:3980:15
at internal/v8_prof_processor.js:41:28
at NativeModule.compile (bootstrap_node.js:613:7)
at Function.NativeModule.require (bootstrap_node.js:558:18)
at startup (bootstrap_node.js:150:20)
at bootstrap_node.js:625:3
Processing file isolate-0x103000000-v8.log
evalmachine.:2770
printErr(str);
^

ReferenceError: printErr is not defined
at TickProcessor.printError (evalmachine.:2770:3)
at TickProcessor.LogReader.processLog_ (evalmachine.:2522:12)
at TickProcessor.LogReader.processLogLine (evalmachine.:2405:10)
at TickProcessor.processLogFile (evalmachine.:2798:10)
at evalmachine.:3980:15
at internal/v8_prof_processor.js:41:28
at NativeModule.compile (bootstrap_node.js:613:7)
at Function.NativeModule.require (bootstrap_node.js:558:18)
at startup (bootstrap_node.js:150:20)
at bootstrap_node.js:625:3
Processing file isolate-0x103800000-v8.log
evalmachine.:2770
printErr(str);
^

ReferenceError: printErr is not defined
at TickProcessor.printError (evalmachine.:2770:3)
at TickProcessor.LogReader.processLog_ (evalmachine.:2522:12)
at TickProcessor.LogReader.processLogLine (evalmachine.:2405:10)
at TickProcessor.processLogFile (evalmachine.:2798:10)
at evalmachine.:3980:15
at internal/v8_prof_processor.js:41:28
at NativeModule.compile (bootstrap_node.js:613:7)
at Function.NativeModule.require (bootstrap_node.js:558:18)
at startup (bootstrap_node.js:150:20)
at bootstrap_node.js:625:3

@richardlau
Copy link
Member

@joseph-jja This issue isn't closed yet. The fix has gone into the v8.x-staging branch but is not in a release.

cc @nodejs/lts

@joseph-jja
Copy link
Author

@richardlau ok, your comment with the red closed confused me :)

@Sytten
Copy link

Sytten commented Oct 26, 2018

Do we know when this will be released? And do we have an alternative until then?

@mcollina
Copy link
Member

@nodejs/lts when do you think a new patch release of 8 could be issued?

@darknz
Copy link

darknz commented Oct 26, 2018

+1 on a fix for this please
I have found that the files produced by node --prof on 8.12 can be processed under node 11, so that's a possible workaround if testing is required (and both versions are available to the person testing?)

@kwaping
Copy link

kwaping commented Nov 30, 2018

I'm also affected by this issue. Thanks for the workaround, @darknz!

@Fishrock123
Copy link
Contributor

This might be fixed in later 8.x versions?

I wan't able to process a v8 log in 8.11 but was able to in 8.14? Maybe it was just a fluke, idk.

@richardlau
Copy link
Member

8.13.0 contains the backported fix for the ReferenceError: printErr is not defined error.

@Fishrock123
Copy link
Contributor

Ok, seems like this has been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants