Bug 84517
Summary: | ASSERT(revalidatingResource->inCache()) failure in MemoryCache::revalidationSucceeded() | ||
---|---|---|---|
Product: | WebKit | Reporter: | Xianzhu Wang <wangxianzhu> |
Component: | Page Loading | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WORKSFORME | ||
Severity: | Normal | CC: | abarth, ap, beidson, japhet, koivisto, martijn |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | |||
Bug Blocks: | 66687 |
Xianzhu Wang
Encountered this on chromium-android by repeatedly openning new tabs, closing tabs, reloading tabs, switching between tabs, etc.
The reason seems:
MemoryCache::clear() might be called on low memory condition during a resource revalidation, causing the resources to be evicted, then some ASSERTs in MemoryCache::revalidationSucceeded() may fail:
ASSERT(revalidatingResource->inCache());
ASSERT(!m_resources.get(resource->url())); // There might be another revalidating or revalidated resource after the original revalidation is evicted.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Adam Barth
So, the ASSERT is wrong and should be removed?
Xianzhu Wang
I think the ASSERTs are useful in most cases. Perhaps we need some logic to handle the low memory eviction case, e.g. to prevent revalidating resources from being evicted.
Adam Barth
This appears to have been resolved in some other way.