Comment #1 on issue 4749 by [EMAIL PROTECTED]: Crash in  
ResourceDispatcherHost::RemovePendingRequest on browser shutdown.
http://code.google.com/p/chromium/issues/detail?id=4749

It seems that we crashed while computing iter->second:

void ResourceDispatcherHost::RemovePendingRequest(
     const PendingRequestList::iterator& iter) {
   // Notify the login handler that this request object is going away.
   ExtraRequestInfo* info = ExtraInfoForRequest(iter->second);  <=== HERE
   if (info && info->login_handler)
     info->login_handler->OnRequestCancelled();

   delete iter->second;
   pending_requests_.erase(iter);

   // If we have no more pending requests, then stop the load state monitor
   if (pending_requests_.empty())
     update_load_states_timer_.Stop();
}

chrome_2670000!ResourceDispatcherHost::RemovePendingRequest:
02751390 55              push    ebp
02751391 8bec            mov     ebp,esp
02751393 83ec08          sub     esp,8
02751396 53              push    ebx
02751397 56              push    esi
02751398 8b7508          mov     esi,dword ptr [ebp+8]
0275139b c745fc00000000  mov     dword ptr [ebp-4],0
027513a2 833e00          cmp     dword ptr [esi],0
027513a5 8bd9            mov     ebx,ecx
027513a7 7505            jne
chrome_2670000!ResourceDispatcherHost::RemovePendingRequest+0x1e (027513ae)
027513a9 e887f84600      call    chrome!normTrie_data32+0x2c4f (0046f887)
027513ae 8b06            mov     eax,dword ptr [esi]
027513b0 8b4e04          mov     ecx,dword ptr [esi+4]
027513b3 3b4804          cmp     ecx,dword ptr [eax+4]
027513b6 7505            jne
chrome_2670000!ResourceDispatcherHost::RemovePendingRequest+0x2d (027513bd)
027513b8 e878f84600      call    chrome!normTrie_data32+0x2c40 (0046f878)
027513bd 8b5604          mov     edx,dword ptr [esi+4]  <=== HERE
027513c0 8b4214          mov     eax,dword ptr [edx+14h]
027513c3 8b80cc010000    mov     eax,dword ptr [eax+1CCh]
027513c9 85c0            test    eax,eax
027513cb 7412            je
chrome_2670000!ResourceDispatcherHost::RemovePendingRequest+0x4f (027513df)
027513cd 83780c00        cmp     dword ptr [eax+0Ch],0
027513d1 740c            je
chrome_2670000!ResourceDispatcherHost::RemovePendingRequest+0x4f (027513df)
027513d3 8b400c          mov     eax,dword ptr [eax+0Ch]
027513d6 8b10            mov     edx,dword ptr [eax]
027513d8 8bc8            mov     ecx,eax
027513da 8b4208          mov     eax,dword ptr [edx+8]
027513dd ffd0            call    eax

Perhaps the caller passed in an invalid 'iter':

void ResourceDispatcherHost::CancelRequestsForRenderView(
   ...

   // Remove matches.
   for (size_t i = 0; i < matching_requests.size(); ++i) {
     PendingRequestList::iterator iter =
         pending_requests_.find(matching_requests[i]);
     DCHECK(iter != pending_requests_.end());
     RemovePendingRequest(iter);  <=== HERE
   }
}

Perhaps 'iter' was pending_requests_.end().  One thing we can
try is to change that DCHECK to CHECK.

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

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-bugs" group.
To post to this group, send email to chromium-bugs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/chromium-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to