Last Comment Bug 716840 - Images get the wrong content with pipelining enabled
: Images get the wrong content with pipelining enabled
Status: RESOLVED WONTFIX
:
Product: Core
Classification: Components
Component: Networking: HTTP (show other bugs)
: 9 Branch
: x86 Windows XP
: -- normal (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-01-10 01:53 PST by André Roaldseth
Modified: 2016-01-19 10:33 PST (History)
4 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Screenshots of Firebug/Chrome Developer tool with headers of the images. (649.46 KB, application/octet-stream)
2012-01-10 01:53 PST, André Roaldseth
no flags Details

Description André Roaldseth 2012-01-10 01:53:48 PST
Created attachment 587264 [details]
Screenshots of Firebug/Chrome Developer tool with headers of the images.

User Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Build ID: 20111220165912

Steps to reproduce:

Display http://www.vg.no/ by writing the URL directly in the URL-bar.




Actual results:

An image (http://static02.vg.no/gfx/ikon_dinepenger.png) gets replaced with a completely different image (http://static02.vg.no/css/drfront/sprite_sectionHeader590.jpg).

The file ikon_dinepenger.png is then cached with its correct HTTP headers, but the content is wrong. This is persistent for all soft refreshes that will use the cached version. A hard refresh that fetches the image from server will replace it and fix the problem.



Expected results:

http://static02.vg.no/gfx/ikon_dinepenger.png should be displayed with its real content. Not with the content of http://static02.vg.no/css/drfront/sprite_sectionHeader590.jpg.
Comment 1 André Roaldseth 2012-01-10 01:58:28 PST
One of the earliest posts about this problem is http://forums.mozillazine.org/viewtopic.php?f=38&t=284489 which dates from 2004.

I have enabled network.http.pipelining and not touched any of the other pipelining settings.

We became aware of the issue (http://tech.vg.no/2011/12/14/safari-on-ios-5-randomly-switches-images/) first with iOS 5 which has pipelining enabled by default. Now we've reproduced it with Firefox 9 and we have some unconfirmed reports about it happening with Opera. Several other news pages(like www.db.no, www.ap.no) has also experienced the problem.

We have lots of tcpdumps from debugging the problem on iOS 5, but everything looks to be correct in them.
Comment 2 Jo Hermans 2012-01-10 04:13:17 PST
If you see the problem in Safari, Firefox and Opera, why do you think it's a problem for Firefox ? Isn't the problem in the webserver itself ?
Comment 3 André Roaldseth 2012-01-10 04:24:03 PST
Well, yes. But we have experienced it with three different websites, three different CMSes, two different load balancers and three different webservers.

Both Apache, Lighttpd and Varnish is all affected by it. We have also tried different load balancing schemes(l7/l4, sticky sessions, etc) for our Big-IP load balancer.

We also have lots of tcpdumps of the traffic on the client side when the problem occurs, but everything _looks_ correct.
Comment 4 Patrick McManus [:mcmanus] 2012-01-10 06:27:57 PST
(In reply to André Roaldseth from comment #3)
e traffic on the client side when the
> problem occurs, but everything _looks_ correct.

can you attach a trace or two to this bug, just for fun :)

I'm working on a set of pipelining patches that hopes to be able to detect this kind of server error.. and, at a minimum ,dynamically turn off pipelining just for the site in question so that the damage is very limited.

So if this turns out to be a good test case I am very appreciative.
Comment 5 André Roaldseth 2012-01-10 06:53:56 PST
(In reply to Patrick McManus [:mcmanus] from comment #4)
> 
> can you attach a trace or two to this bug, just for fun :)
> 

Not so relevant, but this is some of the dumps from when we were debugging the problem on Safari for iOS 5: http://dl.dropbox.com/u/35259841/tcpdumps.zip

I haven't had the time to replicate(requires quite a lot of refreshes) it for Firefox yet. I'll try to find some time this week to replicate it with Firefox while running Wireshark.
Comment 6 Patrick McManus [:mcmanus] 2016-01-19 10:33:30 PST
h2 is the better way that pipelining.. pipelines are likely to leave the stack.

Note You need to log in before you can comment on or make changes to this bug.