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

bootstrap: adds exception handling for profiler bootstrap #29552

Conversation

Copy link
Contributor

@shobhitchittora shobhitchittora commented Sep 14, 2019

The bootstrapping of profiler failed the script evaluation when inspector is disabled. Adding a try-catch block to handle that and emit a warning.

Fixes: #29542

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

@shobhitchittora shobhitchittora force-pushed the profiler-bootstrap-exception-handling branch from bb08f04 to e9e049e Compare Sep 14, 2019
@shobhitchittora shobhitchittora changed the title internal/bootstrap: adds exception handling for profiler bootstrap bootstrap: adds exception handling for profiler bootstrap Sep 14, 2019
@shobhitchittora
Copy link
Contributor Author

@shobhitchittora shobhitchittora commented Sep 14, 2019

@addaleax The warning message can be better here. Any suggestions? Any straightforward way to write a test for this. Thinking of emitting the warning from child to parent and then asserting that.

@devsnek
Copy link
Member

@devsnek devsnek commented Sep 14, 2019

how about "The inspector is disabled, coverage could not be collected"

@devsnek devsnek added coverage inspector labels Sep 14, 2019
@addaleax
Copy link
Member

@addaleax addaleax commented Sep 14, 2019

@addaleax The warning message can be better here. Any suggestions?

I think something along @devsnek’s suggestion is fine.

Any straightforward way to write a test for this. Thinking of emitting the warning from child to parent and then asserting that.

Yeah, spawning a child process that emits this warning and then checking its output would be the easiest way to test this 👍

@shobhitchittora
Copy link
Contributor Author

@shobhitchittora shobhitchittora commented Sep 15, 2019

Both
./node ./test/parallel/test-coverage-with-inspector-disabled.js
and
python tools/test.py test/parallel/test-coverage-with-inspector-disabled.js
work fine for me on local, but the test is fails in CI. I might be missing something here. Is the child spawned correctly in the test added?

Copy link
Member

@addaleax addaleax left a comment

Both
./node ./test/parallel/test-coverage-with-inspector-disabled.js
and
python tools/test.py test/parallel/test-coverage-with-inspector-disabled.js
work fine for me on local, but the test is fails in CI. I might be missing something here. Is the child spawned correctly in the test added?

I might be wrong, but is there a chance it’s working for you locally because you locally compiled a version of Node.js that has the inspector disabled, but Travis CI builds the default version with inspector enabled?

I think it might make sense to add something like if (process.features.inspector) common.skip('Inspector enabled'); or something like it to the beginning of the test?

test/fixtures/v8-coverage/subprocess.js Outdated Show resolved Hide resolved
test/parallel/test-coverage-with-inspector-disabled.js Outdated Show resolved Hide resolved
test/parallel/test-coverage-with-inspector-disabled.js Outdated Show resolved Hide resolved
@shobhitchittora
Copy link
Contributor Author

@shobhitchittora shobhitchittora commented Sep 18, 2019

@addaleax Can this be closed and merged now?

@addaleax
Copy link
Member

@addaleax addaleax commented Sep 18, 2019

@shobhitchittora Yeah, once CI is green with the latest changes this should be good to go 👍

@addaleax addaleax added the author ready label Sep 18, 2019
@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Sep 18, 2019

@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Sep 19, 2019

@Trott
Copy link
Member

@Trott Trott commented Sep 23, 2019

@shobhitchittora Can you rebase to get rid of the conflict?

@Trott Trott force-pushed the profiler-bootstrap-exception-handling branch from 0700615 to bbb315d Compare Sep 23, 2019
@Trott
Copy link
Member

@Trott Trott commented Sep 23, 2019

@shobhitchittora Can you rebase to get rid of the conflict?

Never mind. I did it myself. At least one re-review would be good. @addaleax @joyeecheung

@nodejs-github-bot
Copy link
Contributor

@nodejs-github-bot nodejs-github-bot commented Sep 23, 2019

addaleax pushed a commit that referenced this issue Sep 23, 2019
Add exception handling for the case when profile is
not bootstrapped when coverage is enabled.

Fixes: #29542

PR-URL: #29552
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
@addaleax
Copy link
Member

@addaleax addaleax commented Sep 23, 2019

Landed in fdd5d4a 🎉 Thanks for the PR!

@addaleax addaleax closed this Sep 23, 2019
targos pushed a commit that referenced this issue Sep 23, 2019
Add exception handling for the case when profile is
not bootstrapped when coverage is enabled.

Fixes: #29542

PR-URL: #29552
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
@shobhitchittora
Copy link
Contributor Author

@shobhitchittora shobhitchittora commented Sep 24, 2019

Thanks all for merging this.

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

Successfully merging this pull request may close these issues.

7 participants