Closed Bug 998015 Opened 10 years ago Closed 10 years ago

Disk cache uses timers from the wrong thread

Categories

(Core :: Networking: Cache, defect)

x86
macOS
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 913828

People

(Reporter: bzbarsky, Unassigned)

References

(Blocks 1 open bug)

Details

The assert in bug 998006 fires with this stack:

nsTimerImpl::AssertTargetOnCurrentThread() const
nsTimerImpl::Cancel()
nsDiskCacheMap::ResetCacheTimer(int)
nsDiskCacheMap::InvalidateCache()
nsDiskCacheMap::AddRecord(nsDiskCacheRecord*, nsDiskCacheRecord*)
nsDiskCacheDevice::BindEntry(nsCacheEntry*)
nsCacheService::EnsureEntryHasDevice(nsCacheEntry*)
nsCacheService::DeactivateEntry(nsCacheEntry*)
nsCacheService::CloseDescriptor(nsCacheEntryDescriptor*)
nsCacheEntryDescriptor::Close()
nsCacheEntryDescriptor::~nsCacheEntryDescriptor()
nsCacheEntryDescriptor::~nsCacheEntryDescriptor()
nsCacheEntryDescriptor::Release()
nsCOMPtr<nsICacheEntryInfo>::~nsCOMPtr()
mozilla::net::_OldCacheEntryWrapper::~_OldCacheEntryWrapper()
mozilla::net::_OldCacheEntryWrapper::Release()
nsCOMPtr<nsICacheEntry>::assign_assuming_AddRef(nsICacheEntry*)
nsCOMPtr<nsICacheEntry>::operator=(nsICacheEntry*)
mozilla::net::nsHttpChannel::CloseCacheEntry(bool)
mozilla::net::nsHttpChannel::ContinueProcessResponse(tag_nsresult)
mozilla::net::nsHttpChannel::OnRedirectVerifyCallback(tag_nsresult)
nsAsyncVerifyRedirectCallbackEvent::Run()

which makes sense: that's poking a timer from a thread other than the target thread of the timer, so a clear threadsafety violation.
Blocks: 998006
And also the nsTimerImpl::Cancel from nsDiskCacheMap::Close, called when someone does mozilla::net::CacheStorageService::Clear.
Assignee: nobody → netzen
Assignee: netzen → nobody
Re comment 0: fixed with switching to the new cache.
Re comment 1: not sure this is fixed as well, but any old-cache-cleanup code we still call will soon be removed (at least as part of bug 913828).

Reverting to UNCONFIRMED.
Status: NEW → UNCONFIRMED
Depends on: 913828
Ever confirmed: false
I'll just dupe this bug to Bug 913828 then.
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.