Skip to content

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

Description

@joseph-jja

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

Activity

  1. richardlau commented on Sep 12, 2018

    @richardlau
    Member

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

  2. addaleax commented on Sep 13, 2018

    @addaleax
    Member

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

  3. richardlau commented on Sep 13, 2018

    @richardlau
    Member

    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.

  4. mcollina commented on Sep 20, 2018

    @mcollina
    SponsorMember

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

  5. joseph-jja commented on Sep 25, 2018

    @joseph-jja
    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

  6. richardlau commented on Sep 25, 2018

    @richardlau
    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

  7. joseph-jja commented on Sep 25, 2018

    @joseph-jja
    Author

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

  8. Sytten commented on Oct 26, 2018

    @Sytten

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

  9. mcollina commented on Oct 26, 2018

    @mcollina
    SponsorMember

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

  10. darknz commented on Oct 26, 2018

    @darknz

    +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?)

  11. kwaping commented on Nov 30, 2018

    @kwaping

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

  12. Fishrock123 commented on Dec 6, 2018

    @Fishrock123
    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.

  13. richardlau commented on Dec 6, 2018

    @richardlau
    Member

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

  14. Fishrock123 commented on Dec 6, 2018

    @Fishrock123
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions