Closed Bug 890691 Opened 12 years ago Closed 12 years ago

SPDY connections block after a hard refresh

Categories

(Core :: Networking: HTTP, defect)

18 Branch
x86
All
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla25
Tracking Status
firefox22 --- affected
firefox23 - affected
firefox24 - affected
firefox25 - verified

People

(Reporter: maxaks, Assigned: mcmanus)

References

()

Details

(Keywords: regression)

Attachments

(1 file)

A page hosted on Domain A loads images from spdy enabled Domain B (see link). After doing a ctrl-refresh, only the first image is loaded and Firefox gets seemingly stuck in the "Transferring data from..." state. Opening a new tab (middle clicking on one of the images for example) "unstucks" Firefox. This only happens when domains A and B, or protocols, are different. This behaviour appeared in FF18 as far as I know.
This happens with clean profile. Regression window(beta) Good: http://hg.mozilla.org/releases/mozilla-beta/rev/f5b325a7d5c6 Mozilla/5.0 (X11; Linux i686; rv:18.0) Gecko/18 Firefox/18.0 ID:20121123132620 Bad: http://hg.mozilla.org/releases/mozilla-beta/rev/d82726e5866f Mozilla/5.0 (X11; Linux i686; rv:18.0) Gecko/18 Firefox/18.0 ID:20121126195203 Pushlog: http://hg.mozilla.org/releases/mozilla-beta/pushloghtml?fromchange=f5b325a7d5c6&tochange=d82726e5866f Regression window(m-c) Good: http://hg.mozilla.org/mozilla-central/rev/ab099c9e1a09 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0 ID:20121104012747 Bad: http://hg.mozilla.org/mozilla-central/rev/2937fd8e35a1 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0 ID:20121104152246 Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=ab099c9e1a09&tochange=2937fd8e35a1 Suspected: 82795635cc76 Patrick McManus — bug 779467 modify ClosePersistentConnections to accomodate sticky auth r=honzab
Blocks: 779467
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
OS: Windows 7 → All
Version: Trunk → 18 Branch
maxime, thanks for the really good testcase. I see the problem you describe clearly, but it looks like bbs and static are both running spdy/2 right now so the issue probably isn't due to mixing protocols. I'll take a deeper look.
(In reply to Patrick McManus [:mcmanus] from comment #3) > Created attachment 772474 [details] [diff] [review] > spdy latency problem with control refresh so spdy didn't really have the concept of !ALLOW_KEEPALIVE, since its so inherent to the protocol. We certainly don't allow it to be negotiated by the server as we do for HTTP/1; but I decided to let it remain for the ctrl refresh scenario. So the patch has these parts: 1] close down connections that have served !ALLOW_KEEPALIVE 2] allow more than 1 spdy connection if we are serving !ALLOW_KEEPALIVE 3] don't put a !ALLOW_KEEPALIVE transaction on a spdy session that has served a transaction already 4] don't let existing ALLOW_KEEPALIVE sessions to starve the need for more !ALLOW_KEEPALIVE sessions
Comment on attachment 772474 [details] [diff] [review] spdy latency problem with control refresh Review of attachment 772474 [details] [diff] [review]: ----------------------------------------------------------------- ::: netwerk/protocol/http/nsHttpConnection.cpp @@ +60,5 @@ > , mCompletedProxyConnect(false) > , mLastTransactionExpectedNoContent(false) > , mIdleMonitoring(false) > , mProxyConnectInProgress(false) > + , mExperienced(false) Maybe rename this mEverUsedNonNullTransaction (or maybe 'serviced' instead of 'used')? It's wordier, to be sure, but much more understandable. That would mean changing IsExperienced() to something similar, as well. ::: netwerk/protocol/http/nsHttpConnectionMgr.cpp @@ +1664,5 @@ > + // connection to make room for a new one that can service a no KEEPALIVE > + // request > + unusedSpdyPersistentConnection->DontReuse(); > + } > + nit: trailing whitespace
Attachment #772474 - Flags: review?(hurley) → review+
Thanks - in the end I decided to keep the naming. https://hg.mozilla.org/integration/mozilla-inbound/rev/b5af330b0bd0
Comment on attachment 772474 [details] [diff] [review] spdy latency problem with control refresh Review of attachment 772474 [details] [diff] [review]: ----------------------------------------------------------------- ::: netwerk/protocol/http/nsHttpConnection.h @@ +231,5 @@ > bool mCompletedProxyConnect; > bool mLastTransactionExpectedNoContent; > bool mIdleMonitoring; > bool mProxyConnectInProgress; > + bool mExperienced; The comment (really needed with this name..) should be here, not at the getter imo.
Assignee: nobody → mcmanus
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
This doesn't meet criteria for tracking since it's been present in builds for so long but if the fix is low risk enough please nominate for uplift consideration at least to Aurora.
Maxime, can you please verify this is fixed for you in the latest Aurora builds?
Flags: needinfo?(maxaks)
Seems to work fine in 25.0a2 (2013-09-10) Thank you.
Flags: needinfo?(maxaks)
(In reply to Maxime from comment #11) > Seems to work fine in 25.0a2 (2013-09-10) Thanks Maxime, calling this verified fixed.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: