Closed Bug 1376970 Opened 3 years ago Closed 3 years ago
Make sure m
Race Cache With Network is only set when we are actually racing
This flag should not be set when TriggerNetwork is called because we are revalidating, or in other circumstances when we are not actually racing.
Attachment #8881993 - Flags: review?(michal.novotny) → review+
Pushed by email@example.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/3e70da3068df Make sure mRaceCacheWithNetwork is only set when we are actually racing. r=michal
This is IMO wrong. In case of delayed race, mRaceCacheWithNetwork is false until we hit the network, but what if it happens after OnCacheEntryAvailable is called? Imagine following scenario: 1) MaybeRaceCacheWithNetwork triggers the network with a delay, so mRaceCacheWithNetwork==false, mRaceDelay!=0 2) cache wins before the mRaceDelay time elapsed, so mRaceCacheWithNetwork is still false and we won't set mFirstResponseSource in ReadFromCache 3) mRaceDelay time elapsed and nsHttpChannel was notified by the timer, TriggerNetwork(0) is called but mRaceCacheWithNetwork is not set again, because mOnCacheAvailableCalled is already true. 4) Now we start network request when cache already started delivering data, mRaceCacheWithNetwork is false and mFirstResponseSource is RESPONSE_PENDING :-/ We should either change what mRaceCacheWithNetwork means or check it together with mRaceDelay.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
This is kind of a new bug. Filed bug 1382845 for it.
Status: REOPENED → RESOLVED
Closed: 3 years ago → 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.