Bug 37120

Summary: ASSERT close()ing the same StorageAreaImpl twice when using multiple PageGroups
Product: WebKit Reporter: Brady Eidson <beidson>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal Keywords: InRadar
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Early return instead of ASSERT oliver: review+, beidson: commit-queue-

Brady Eidson
Reported 2010-04-05 15:40:39 PDT
ASSERT close()ing the same StorageAreaImpl twice when using multiple PageGroups If you use multiple PageGroups and point them both to the same path for LocalStorage, you can get an ASSERT closing the same storage area twice: ASSERT(!m_isShutdown); #0 0x102938f3e in WebCore::StorageNamespaceImpl::close at StorageNamespaceImpl.cpp:122 #1 0x102740fc5 in WebCore::PageGroup::closeLocalStorage at PageGroup.cpp:106 #2 0x101adf881 in +[WebView _applicationWillTerminate] at WebView.mm:2482 I've traced through what happens when you *do* try to close it twice, and it appears there's no ill effects. But it actually ends up trying to do synchronous I/O just to support the second close, which is a waste. The ASSERT is invalid - we thought this case shouldn't happen, but it clearly can. It should just be an early return instead. In radar as <rdar://problem/7828420>
Attachments
Early return instead of ASSERT (1.26 KB, patch)
2010-04-05 15:44 PDT, Brady Eidson
oliver: review+
beidson: commit-queue-
Brady Eidson
Comment 1 2010-04-05 15:44:44 PDT
Created attachment 52583 [details] Early return instead of ASSERT
Oliver Hunt
Comment 2 2010-04-05 15:52:01 PDT
Comment on attachment 52583 [details] Early return instead of ASSERT r=me
Brady Eidson
Comment 3 2010-04-05 15:57:24 PDT
Note You need to log in before you can comment on or make changes to this bug.