Skip to content

Commit

Permalink
deps: backport 8d00c2c from v8 upstream
Browse files Browse the repository at this point in the history
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: #5024
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
  • Loading branch information
gibfahn authored and Myles Borins committed Feb 18, 2016
1 parent 8b040b5 commit 3ca04a5
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions deps/v8/src/isolate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit 3ca04a5

Please sign in to comment.