Hi all,

I ran into a crash while running a Node.js app which used the V8 profiler 
(via the CpuProfiler API, not --prof). A segfault was occurring 
intermittently (about 10% of the time), and when I ran the test on debug 
mode, I encountered an assert failure:

  # Fatal error in ../src/profiler/cpu-profiler.cc, line 414
  # Check failed: !is_profiling_.
  
The reason this assert was failing was because the profiler was started but 
never stopped, so the profiler would continue to try to run during the 
isolate's shutdown sequence. A solution to this problem would be to turn 
off the profiler as part of the Isolate::Deinit() function (at Line 1906 in 
v8/src/isolate.cc - see below).

I will submit this following the V8 process, but I wanted to make sure that 
this was a reasonable fix (it's my first time contributing to V8) before 
doing so.

Thanks in advance,

Gibson
 
 
   if (FLAG_print_deopt_stress) {
    PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_);
  }
  
  // Insert at Line 1906 in Isolate::Deinit() in v8/src/isolate.cc
  if (cpu_profiler_) {
    cpu_profiler_->DeleteAllProfiles();
  }
  // End of insertion
  
  // We must stop the logger before we tear down other components.
  Sampler* sampler = logger_->sampler();
  if (sampler && sampler->IsActive()) sampler->Stop();
  }


-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to