Closed Bug 1382845 Opened 3 years ago Closed 3 years ago

We should cancel mNetworkTriggerTimer when we start reading data from the cache

Categories

(Core :: Networking, enhancement)

enhancement
Not set

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: valentin, Assigned: valentin)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-active])

Attachments

(1 file, 1 obsolete file)

(In reply to Michal Novotny (:michal) from bug 1376970 comment #4)
> 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.

To avoid this situation occurring, we should mNetworkTriggerTimer when we start reading from the cache.
I also changed ReportRcwnStats as mRaceCacheWithNetwork isn't necessarily true when mRaceDelay is.
MozReview-Commit-ID: HOnWemy2YCY
Attachment #8888547 - Flags: review?(michal.novotny)
Assignee: nobody → valentin.gosu
Status: NEW → ASSIGNED
Your patch in bug 1382852 has a better fix for the telemetry issue
Attachment #8888550 - Flags: review?(michal.novotny)
Attachment #8888547 - Attachment is obsolete: true
Attachment #8888547 - Flags: review?(michal.novotny)
Attachment #8888550 - Flags: review?(michal.novotny) → review+
Blocks: 1381816
Keywords: checkin-needed
Whiteboard: [necko-active]
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a4c46cc48c78
We should cancel mNetworkTriggerTimer when we start reading data from the cache. r=michal
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/a4c46cc48c78
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Duplicate of this bug: 1378216
You need to log in before you can comment on or make changes to this bug.