diff options
author | Gibson Fahnestock <gib@uk.ibm.com> | 2016-02-01 12:13:28 +0000 |
---|---|---|
committer | Myles Borins <mborins@us.ibm.com> | 2016-03-02 14:01:11 -0800 |
commit | 5590c366c5f3c1c10a399233c63e9509ec1990c2 (patch) | |
tree | 5fc4dee3a3bc8c4d81873b83d7e688b637ad03dd | |
parent | 0217cb54976751758aac78fa969a5194eb96cd18 (diff) | |
download | nodejs-5590c366c5f3c1c10a399233c63e9509ec1990c2.tar.gz nodejs-5590c366c5f3c1c10a399233c63e9509ec1990c2.tar.bz2 nodejs-5590c366c5f3c1c10a399233c63e9509ec1990c2.zip |
deps: backport 8d00c2c from v8 upstream
Original commit message:
```
Stop profiler on isolate teardown if still running
If the profiler is started via the API and not stopped, V8 will
intermittently crash during isolate teardown.
The fix is to run the DeleteAllProfiles function in Isolate::Deinit()
if cpu_profiler_ still exists.
https://groups.google.com/forum/#!topic/v8-dev/WsIlpbaD4mo
TEST= Run in debug mode, if you start a profile and don't stop it,
this assert should fail:
Fatal error in ../src/profiler/cpu-profiler.cc, line 414
Check failed: !is_profiling_.
Review URL: https://codereview.chromium.org/1526253005
Cr-Commit-Position: refs/heads/master@{#32953}
```
PR-URL: https://github.com/nodejs/node/pull/5024
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaƫl Zasso <mic.besace@gmail.com>
-rw-r--r-- | deps/v8/src/isolate.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/deps/v8/src/isolate.cc b/deps/v8/src/isolate.cc index 186a49358..36fdcf28f 100644 --- a/deps/v8/src/isolate.cc +++ b/deps/v8/src/isolate.cc @@ -1907,6 +1907,10 @@ void Isolate::Deinit() { PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_); } + if (cpu_profiler_) { + cpu_profiler_->DeleteAllProfiles(); + } + // We must stop the logger before we tear down other components. Sampler* sampler = logger_->sampler(); if (sampler && sampler->IsActive()) sampler->Stop(); |