WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
157000
Crash under MemoryCache::remove()
https://bugs.webkit.org/show_bug.cgi?id=157000
Summary
Crash under MemoryCache::remove()
Chris Dumez
Reported
2016-04-25 15:29:11 PDT
Crash under MemoryCache::remove(): Thread[0] EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000000438) [ 0] 0x00007fff96f24da7 WebCore`WebCore::MemoryCache::remove(WebCore::CachedResource&) [inlined] WebCore::CachedResource::sessionID() const at CachedResource.h:116:42 112 const URL& url() const { return m_resourceRequest.url();} 113 #if ENABLE(CACHE_PARTITIONING) 114 const String& cachePartition() const { return m_resourceRequest.cachePartition(); } 115 #endif -> 116 SessionID sessionID() const { return m_sessionID; } 117 Type type() const { return static_cast<Type>(m_type); } 118 119 ResourceLoadPriority loadPriority() const { return m_loadPriority; } 120 void setLoadPriority(const Optional<ResourceLoadPriority>&); 0x00007fff96f24d94: movq %rdi, %r14 0x00007fff96f24d97: movq 0x158(%r14), %rax 0x00007fff96f24d9e: testq %rax, %rax 0x00007fff96f24da1: je 0xb0f08c ; <+780> at MemoryCache.cpp:450 -> 0x00007fff96f24da7: movq 0x438(%r13), %r9 0x00007fff96f24dae: movl 0x164(%r14), %r8d 0x00007fff96f24db5: movl %r8d, %esi 0x00007fff96f24db8: andl %r9d, %esi 0x00007fff96f24dbb: movq %rsi, %rcx [ 0] 0x00007fff96f24da7 WebCore`WebCore::MemoryCache::remove(WebCore::CachedResource&) + 39 at MemoryCache.cpp:427 423 ASSERT(WTF::isMainThread()); 424 LOG(ResourceLoading, "Evicting resource %p for '%s' from cache", &resource, resource.url().string().latin1().data()); 425 // The resource may have already been removed by someone other than our caller, 426 // who needed a fresh copy for a reload. See <
http://bugs.webkit.org/show_bug.cgi?id=12479#c6
>. -> 427 if (auto* resources = sessionResourceMap(resource.sessionID())) { 428 #if ENABLE(CACHE_PARTITIONING) 429 auto key = std::make_pair(resource.url(), resource.cachePartition()); 430 #else 431 auto& key = resource.url(); [ 1] 0x00007fff96f27673 WebCore`WebCore::MemoryCache::evictResources(WebCore::SessionID) + 99 at MemoryCache.cpp:743:9 739 return; 740 auto& resources = *it->value; 741 742 for (int i = 0, size = resources.size(); i < size; ++i) -> 743 remove(*resources.begin()->value); 744 745 ASSERT(!m_sessionResources.contains(sessionID)); 746 } 747 0x00007fff96f27660: movq %r14, %rdi 0x00007fff96f27663: callq 0xb11c70 ; WTF::HashMap<std::__1::pair<WebCore::URL, WTF::String>, WebCore::CachedResource*, WTF::PairHash<WebCore::URL, WTF::String>, WTF::HashTraits<std::__1::pair<WebCore::URL, WTF::String> >, WTF::HashTraits<WebCore::CachedResource*> >::begin at HashMap.h:217 0x00007fff96f27668: movq 0x40(%rax), %rsi 0x00007fff96f2766c: movq %r15, %rdi -> 0x00007fff96f2766f: callq 0xb0ed80 ; WebCore::MemoryCache::remove at MemoryCache.cpp:422 0x00007fff96f27674: decl %ebx 0x00007fff96f27676: jne 0xb11660 ; <+80> at MemoryCache.cpp:743 0x00007fff96f27678: addq $0x8, %rsp 0x00007fff96f2767c: popq %rbx [ 2] 0x00007fff94286040 WebKit`WebKit::WebProcess::deleteWebsiteData(WebCore::SessionID, unsigned long long, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > >, unsigned long long) + 56 at WebProcess.cpp:1179:9 1175 UNUSED_PARAM(modifiedSince); 1176 1177 if (websiteDataTypes & WebsiteDataTypeMemoryCache) { 1178 PageCache::singleton().pruneToSizeNow(0, PruningReason::None); -> 1179 MemoryCache::singleton().evictResources(sessionID); 1180 1181 CrossOriginPreflightResultCache::singleton().empty(); 1182 } 1183 0x00007fff9428602c: callq 0x2bd96a ; symbol stub for: WebCore::PageCache::pruneToSizeNow(unsigned int, WebCore::PruningReason) 0x00007fff94286031: callq 0x2bc1a6 ; symbol stub for: WebCore::MemoryCache::singleton() 0x00007fff94286036: movq %rax, %rdi 0x00007fff94286039: movq %r15, %rsi -> 0x00007fff9428603c: callq 0x2bc194 ; symbol stub for: WebCore::MemoryCache::evictResources(WebCore::SessionID) 0x00007fff94286041: callq 0x2bd274 ; symbol stub for: WebCore::CrossOriginPreflightResultCache::singleton() 0x00007fff94286046: movq %rax, %rdi 0x00007fff94286049: callq 0x2bd26e ; symbol stub for: WebCore::CrossOriginPreflightResultCache::empty() 0x00007fff9428604e: movq 0x50(%rbx), %rdi
Attachments
Patch
(3.71 KB, patch)
2016-04-25 16:24 PDT
,
Chris Dumez
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Chris Dumez
Comment 1
2016-04-25 15:29:39 PDT
rdar://problem/23344660
Chris Dumez
Comment 2
2016-04-25 16:24:22 PDT
Created
attachment 277287
[details]
Patch
WebKit Commit Bot
Comment 3
2016-04-25 16:26:28 PDT
Attachment 277287
[details]
did not pass style-queue: ERROR: Source/WebCore/loader/cache/MemoryCache.cpp:284: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 1 in 3 files If any of these errors are false positives, please file a bug against check-webkit-style.
Andreas Kling
Comment 4
2016-04-25 16:27:45 PDT
Comment on
attachment 277287
[details]
Patch Would be nice with a test but r=me
WebKit Commit Bot
Comment 5
2016-04-25 17:49:42 PDT
Comment on
attachment 277287
[details]
Patch Clearing flags on attachment: 277287 Committed
r200066
: <
http://trac.webkit.org/changeset/200066
>
WebKit Commit Bot
Comment 6
2016-04-25 17:49:47 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug