Bug 58698

Summary: Hang underneath ApplicationCacheStorage::writeDataToUniqueFileInDirectory when loading http://www.webkit.org/demos/calendar
Product: WebKit Reporter: Jessie Berlin <jberlin>
Component: Page LoadingAssignee: Jessie Berlin <jberlin>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, eric, jberlin, jer.noble, jhoneycutt, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: Windows 7   
Attachments:
Description Flags
Patch
bweinstein: review+
Patch none

Description Jessie Berlin 2011-04-15 15:05:00 PDT
ntdll.dll!_RtlCompareMemoryUlong@12()  + 0x10 bytes
    ntdll.dll!_RtlAllocateHeap@12()  + 0x502a bytes
    ntdll.dll!_RtlDebugAllocateHeap@12()  + 0xb5 bytes
    ntdll.dll!@RtlpAllocateHeap@24()  + 0x57b22 bytes
    ntdll.dll!_RtlAllocateHeap@12()  + 0x502a bytes
    msvcr80.dll!_malloc()  + 0x7a bytes
>    JavaScriptCore.dll!WTF::fastMalloc(unsigned int n=92)  Line 251 + 0xc bytes    C++
    WebKit.dll!WTF::StringImpl::createUninitialized(unsigned int length=36, wchar_t * & data=0xcccccccc)  Line 87 + 0x9 bytes    C++
    WebKit.dll!WTF::StringImpl::create(const wchar_t * characters=0x0078ee1e, unsigned int length=36)  Line 99 + 0x11 bytes    C++
    WebKit.dll!WTF::String::String(const wchar_t * characters=0x0078ee1e, unsigned int length=36)  Line 44 + 0x3e bytes    C++
    WebKit.dll!WebCore::createCanonicalUUIDString()  Line 72 + 0x1d bytes    C++
    WebKit.dll!WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory(WebCore::SharedBuffer * data=0x07837ca8, const WTF::String & directory={...}, WTF::String & path={...})  Line 1236 + 0x9 bytes    C++
    WebKit.dll!WebCore::ApplicationCacheStorage::store(WebCore::ApplicationCacheResource * resource=0x07761fa8, unsigned int cacheStorageID=1)  Line 807 + 0x19 bytes    C++
    WebKit.dll!WebCore::ApplicationCacheStorage::store(WebCore::ApplicationCache * cache=0x07845418, WebCore::StorageIDJournal<WebCore::ApplicationCacheResource> * storageIDJournal=0x0078f15c)  Line 718 + 0x1f bytes    C++
    WebKit.dll!WebCore::ApplicationCacheStorage::storeNewestCache(WebCore::ApplicationCacheGroup * group=0x07844878, WebCore::ApplicationCache * oldCache=0x00000000, WebCore::ApplicationCacheStorage::FailureReason & failureReason=-858993460)  Line 993 + 0x15 bytes    C++
    WebKit.dll!WebCore::ApplicationCacheGroup::checkIfLoadIsComplete()  Line 872 + 0x1d bytes    C++
    WebKit.dll!WebCore::ApplicationCacheGroup::finishedLoadingMainResource(WebCore::DocumentLoader * loader=0x0772a4a0)  Line 276    C++
    WebKit.dll!WebCore::ApplicationCacheGroup::deliverDelayedMainResources()  Line 982    C++
    WebKit.dll!WebCore::ApplicationCacheGroup::startLoadingEntry()  Line 955    C++
    WebKit.dll!WebCore::ApplicationCacheGroup::didFinishLoading(WebCore::ResourceHandle * handle=0x077c54a0, double 

<rdar://problem/9292486>
Comment 1 Jessie Berlin 2011-04-15 15:37:53 PDT
Created attachment 89865 [details]
Patch
Comment 2 Brian Weinstein 2011-04-15 15:51:38 PDT
Comment on attachment 89865 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89865&action=review

The changes to FileSystemWin look good.

Is ApplicationCacheStorage a cross-platform file? If so, we should probably add the checks for both types of path separators. Would that break the Mac?

> Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1246
> +        if (dirName.characterStartingAt(dirName.length() - 1) == '\\') {

Should this also check for '/' on Mac?

> Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1247
> +            // Remove any trailing "\".

Should this also say '/'?
Comment 3 Jessie Berlin 2011-04-15 16:26:09 PDT
Created attachment 89872 [details]
Patch

Moving the changes to be windows-specific only, in response to the points brought up by Brian.
Comment 4 Brian Weinstein 2011-04-15 16:28:49 PDT
Comment on attachment 89872 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89872&action=review

> Source/WebCore/ChangeLog:10
> +        Add breaks to the case statement in openFile and remove any trailing slash in

Separate entries for each function that you changed would be nice for the ChangeLog.
Comment 5 Jessie Berlin 2011-04-15 16:34:52 PDT
(In reply to comment #4)
> (From update of attachment 89872 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=89872&action=review
> 
> > Source/WebCore/ChangeLog:10
> > +        Add breaks to the case statement in openFile and remove any trailing slash in
> 
> Separate entries for each function that you changed would be nice for the ChangeLog.

For some reason the Changelog didn't add them, but I will.

Thanks for the review!
Comment 6 Jessie Berlin 2011-04-15 16:51:51 PDT
Comment on attachment 89872 [details]
Patch

Committed in http://trac.webkit.org/changeset/84051
Comment 7 WebKit Review Bot 2011-04-15 18:22:00 PDT
http://trac.webkit.org/changeset/84051 might have broken WinCairo Debug (Build)