Updates:
        Summary: Crash On Renderer Main thread (probably just after task  
completion/corruption)

Comment #8 on issue 8553 by [email protected]: Crash On Renderer Main thread  
(probably just after task completion/corruption)
http://code.google.com/p/chromium/issues/detail?id=8553

Summary: It appears to be that in the render, the completion of some task  
has caused
heap corruption (possibly the task itself).  I'll have to go hunting for  
other
(related) and common crashers to try to seek the true cause.  I suspect the
involvement of the message loop is tangential to the problem.

Here are some more details.

I'm hard pressed to blame std::swap(), and I tried researching it via  
google to find
similar crashes.  The closest I came was that std::swap() induced some  
malfunctions
recently when an attempt was made to use an iterator (into the swapped  
dequeues
before and after the dequeue had been moved around via swap()).  Unable to  
claim that
swap has problems with memory alloc/free, I have to conclude the memory  
(heap) was
corrupted "recently" so that this stack among the first places (after the  
corruption)
that did memory alloc/free.

Looking up the stack, the critical point is that DoWork() is calling
ReloadWorkQueue().  This means that a tasks has *just* completed.  There is  
a chance
that DoWork only just finished queueing a timer task, but just completed is  
the
likely thing that corrupts memory.  Note that when a task is just  
completed, the
message loop then does a free of the task (most of the time). The fact that  
it
crashes in ReloadWorkQueue is no big deal, it is just that the internal  
queue happens
to be empty, and the message_loop is swapping in the externally visible  
queue to
start to service it.  The mention of safe browsing (re: SBChunk) on the  
stack is a
red herring, as several templated functions within swap() are merged to use  
common
code (and slightly confuse the displayed stack trace, althought the stack  
is probably
quite intact).

If the above conclusion is correct, the next things to look for is a  
renderer crash
on the main thread, which means it contains:

[renderer_main.cc:120] - RendererMain(MainFunctionParams const &)

We can *hope* that the class of tasks that cause this crash are many, and a  
similar
task is just starting (I don't know how else to guess what task just  
finished...
<sigh>).

There is a chance that we'll see other main thread renderer crashes, and  
they'll
actually happen as we try to delete the task... which would then hint that  
the
corruption happened *before* the task deletion, and we might get a hint of  
what the
task being run was.

bottom line: this stack trace needs to be merged with some other Renderer  
crashes on
the main thread.

--
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