Status: Assigned
Owner: u...@chromium.org
Labels: Type-Bug Pri-2 OS-All Area-Misc

New issue 28096 by j...@chromium.org: Handle Histogram lifetimes to avoid  
premature destruction
http://code.google.com/p/chromium/issues/detail?id=28096

chrome_browser_net_websocket_experiment::WebSocketExperimentRunner

has instance variables including maps that contain pointers to Histograms.
As a result, when the instance is torn down, the Histograms race toward
destruction against the metrics services use and recording of their
contents.

The current "standard" pattern for using Histograms includes making sure
that the Histogram instances are not destroyed prematurely.  The underlying
premise in the most common pattern is that the histograms are held in
static variables within functions or methods.  With that format, the
histograms are not destroyed until after execution of the main() routines
have completed.

The code in this module needs to be adjusted to abide by this requirement.

One other alternative is to wait until we land a related CL, which will
actually support thread-safe-reference-counted Histograms.  That support
will allow you to release your reference asynchronously, without causing
problems.  If you are not in a rush, you should wait for that landing
before re-enabling your code.

For now, I've disabled the call the Start() method in browser_main.cc line
845, and added a TODO(ukai) and this bug number for reference.

See Issue 27856: Crash - MetricsService::RecordCurrentHistograms()
http://code.google.com/p/chromium/issues/detail?id=27856
to understand the impact.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

-- 
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs

Reply via email to