DescriptionFix a DCHECK that could fire in PassiveLogCollector for a particular stream of events.
The sequence of events needed to trigger the assertion is a little complicated (see unittest for specifics).
The general pattern goes something like this:
(1) Add a dependency between two sources of different types. (This increments the refcount on the dependency.)
(2) Saturate the "graveyard" containing the dependency causing it to be nuked.
(3) Add a new entry to the original dependency, causing it to re-create the source (but now with 0 refcount).
(4) Force the buffer containing the source in step (1) to be nuked
(5) In releasing the dependencies, it will now try to release reference on non-existent source.
While this was crashing debug mode, I don't believe there would have been an impact on release builds (since DeleteSourceInfo() early returns if it can't find the source).
BUG=58847
TEST=PassiveLogCollectorTest.ReleaseDependencyToUnreferencedSource
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66147
Patch Set 1 #
Total comments: 2
Patch Set 2 : rename x --> log #
Messages
Total messages: 3 (0 generated)
|