I've been hacking away at this for a week to no avail.  I'm hoping
someone here can help me.  I have been moving a site to a new server.
It is a Dell box running Ubuntu 10.04.2 LTS.  The application works
fine with all tested browsers except IE7.  Unfortunately most of the
client's users are using IE7.

When I submit a form via POST that is sufficiently long the server
responds, but in the case of IE7 the server sends an ACK, RST packet
and IE7 dies.  This didn't happen on our old server (still in
production) and doesn't happen with Firefox 3.6, IE8, Safari 5, etc.

I've spent the past day learning Wireshark and watching packets go by
trying to figure out what is going on.  There is no error or debug
notification within my application.

I have created a simple demonstration program that shows this
behavior.  I am using python 2.6.5, set up a fresh virtualenv with no
site packages and ran the hello world tutorial from:
http://docs.pylonsproject.org/projects/pylons_framework/dev/gettingstarted.html

I installed the most recent pylons using easy_install and it installed
the standard set of packages.  Interestingly right now nose is broken
in easy_install, but I downloaded it myself and got the rest of the
installation done.

Once I had that running and verified I created a hello.mako template
that looks like this:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/
TR/html4/strict.dtd">
<html>
<head>
<title>Minimal test page</title>
</head>
<body>
<h1>FOO</h1>

<form name="input" action="/hello/index" method="post">
<input type="hidden" id="foo0" name="fooname0" value="somevaluevalue0"/
>
<input type="hidden" id="foo1" name="fooname1" value="somevaluevalue1"/
>
<input type="hidden" id="foo2" name="fooname2" value="somevaluevalue2"/
>
<input type="hidden" id="foo3" name="fooname3" value="somevaluevalue3"/
>
<input type="hidden" id="foo4" name="fooname4" value="somevaluevalue4"/
>
<input type="hidden" id="foo5" name="fooname5" value="somevaluevalue5"/
>
<input type="hidden" id="foo6" name="fooname6" value="somevaluevalue6"/
>
<input type="hidden" id="foo7" name="fooname7" value="somevaluevalue7"/
>
<input type="hidden" id="foo8" name="fooname8" value="somevaluevalue8"/
>
<input type="hidden" id="foo9" name="fooname9" value="somevaluevalue9"/
>
<input type="hidden" id="foo10" name="fooname10"
value="somevaluevalue10"/>
<input type="hidden" id="foo11" name="fooname11"
value="somevaluevalue11"/>
<input type="hidden" id="foo12" name="fooname12"
value="somevaluevalue12"/>
<input type="hidden" id="foo13" name="fooname13"
value="somevaluevalue13"/>
<input type="hidden" id="foo14" name="fooname14"
value="somevaluevalue14"/>
<input type="hidden" id="foo15" name="fooname15"
value="somevaluevalue15"/>
<input type="hidden" id="foo16" name="fooname16"
value="somevaluevalue16"/>
<input type="hidden" id="foo17" name="fooname17"
value="somevaluevalue17"/>
<input type="hidden" id="foo18" name="fooname18"
value="somevaluevalue18"/>
<input type="hidden" id="foo19" name="fooname19"
value="somevaluevalue19"/>
<input type="hidden" id="foo20" name="fooname20"
value="somevaluevalue20"/>
<input type="hidden" id="foo21" name="fooname21"
value="somevaluevalue21"/>
<input type="hidden" id="foo22" name="fooname22"
value="somevaluevalue22"/>
<input type="hidden" id="foo23" name="fooname23"
value="somevaluevalue23"/>
<input type="hidden" id="foo24" name="fooname24"
value="somevaluevalue24"/>
<input type="hidden" id="foo25" name="fooname25"
value="somevaluevalue25"/>
<input type="hidden" id="foo26" name="fooname26"
value="somevaluevalue26"/>
<input type="hidden" id="foo27" name="fooname27"
value="somevaluevalue27"/>
<input type="hidden" id="foo28" name="fooname28"
value="somevaluevalue28"/>
<input type="hidden" id="foo29" name="fooname29"
value="somevaluevalue29"/>
<input type="hidden" id="foo30" name="fooname30"
value="somevaluevalue30"/>
<input type="hidden" id="foo31" name="fooname31"
value="somevaluevalue31"/>
<input type="hidden" id="foo32" name="fooname32"
value="somevaluevalue32"/>
<input type="hidden" id="foo33" name="fooname33"
value="somevaluevalue33"/>
<input type="hidden" id="foo34" name="fooname34"
value="somevaluevalue34"/>
<input type="hidden" id="foo35" name="fooname35"
value="somevaluevalue35"/>
<input type="hidden" id="foo36" name="fooname36"
value="somevaluevalue36"/>
<input type="hidden" id="foo37" name="fooname37"
value="somevaluevalue37"/>
<input type="hidden" id="foo38" name="fooname38"
value="somevaluevalue38"/>
<input type="hidden" id="foo39" name="fooname39"
value="somevaluevalue39"/>
<input type="hidden" id="foo40" name="fooname40"
value="somevaluevalue40"/>
<input type="hidden" id="foo41" name="fooname41"
value="somevaluevalue41"/>
<input type="hidden" id="foo42" name="fooname42"
value="somevaluevalue42"/>
<input type="hidden" id="foo43" name="fooname43"
value="somevaluevalue43"/>
<input type="hidden" id="foo44" name="fooname44"
value="somevaluevalue44"/>
<input type="hidden" id="foo45" name="fooname45"
value="somevaluevalue45"/>
<input type="hidden" id="foo46" name="fooname46"
value="somevaluevalue46"/>
<input type="hidden" id="foo47" name="fooname47"
value="somevaluevalue47"/>
<input type="hidden" id="foo48" name="fooname48"
value="somevaluevalue48"/>
<input type="hidden" id="foo49" name="fooname49"
value="somevaluevalue49"/>
<input type="hidden" id="foo50" name="fooname50"
value="somevaluevalue50"/>
<input type="hidden" id="foo51" name="fooname51"
value="somevaluevalue51"/>
<input type="hidden" id="foo52" name="fooname52"
value="somevaluevalue52"/>
<input type="hidden" id="foo53" name="fooname53"
value="somevaluevalue53"/>
<input type="hidden" id="foo54" name="fooname54"
value="somevaluevalue54"/>
<input type="hidden" id="foo55" name="fooname55"
value="somevaluevalue55"/>
<input type="hidden" id="foo56" name="fooname56"
value="somevaluevalue56"/>
<input type="hidden" id="foo57" name="fooname57"
value="somevaluevalue57"/>
<input type="hidden" id="foo58" name="fooname58"
value="somevaluevalue58"/>
<input type="hidden" id="foo59" name="fooname59"
value="somevaluevalue59"/>
<input type="hidden" id="foo60" name="fooname60"
value="somevaluevalue60"/>
<input type="hidden" id="foo61" name="fooname61"
value="somevaluevalue61"/>
<input type="hidden" id="foo62" name="fooname62"
value="somevaluevalue62"/>
<input type="hidden" id="foo63" name="fooname63"
value="somevaluevalue63"/>
<input type="hidden" id="foo64" name="fooname64"
value="somevaluevalue64"/>
<input type="hidden" id="foo65" name="fooname65"
value="somevaluevalue65"/>
<input type="hidden" id="foo66" name="fooname66"
value="somevaluevalue66"/>
<input type="hidden" id="foo67" name="fooname67"
value="somevaluevalue67"/>
<input type="hidden" id="foo68" name="fooname68"
value="somevaluevalue68"/>
<input type="hidden" id="foo69" name="fooname69"
value="somevaluevalue69"/>
<input type="hidden" id="foo70" name="fooname70"
value="somevaluevalue70"/>
<input type="hidden" id="foo71" name="fooname71"
value="somevaluevalue71"/>
<input type="hidden" id="foo72" name="fooname72"
value="somevaluevalue72"/>
<input type="hidden" id="foo73" name="fooname73"
value="somevaluevalue73"/>
<input type="hidden" id="foo74" name="fooname74"
value="somevaluevalue74"/>
<input type="hidden" id="foo75" name="fooname75"
value="somevaluevalue75"/>
<input type="hidden" id="foo76" name="fooname76"
value="somevaluevalue76"/>
<input type="hidden" id="foo77" name="fooname77"
value="somevaluevalue77"/>
<input type="hidden" id="foo78" name="fooname78"
value="somevaluevalue78"/>
<input type="hidden" id="foo79" name="fooname79"
value="somevaluevalue79"/>
<input type="hidden" id="foo80" name="fooname80"
value="somevaluevalue80"/>
<input type="hidden" id="foo81" name="fooname81"
value="somevaluevalue81"/>
<input type="hidden" id="foo82" name="fooname82"
value="somevaluevalue82"/>
<input type="hidden" id="foo83" name="fooname83"
value="somevaluevalue83"/>
<input type="hidden" id="foo84" name="fooname84"
value="somevaluevalue84"/>
<input type="hidden" id="foo85" name="fooname85"
value="somevaluevalue85"/>
<input type="hidden" id="foo86" name="fooname86"
value="somevaluevalue86"/>
<input type="hidden" id="foo87" name="fooname87"
value="somevaluevalue87"/>
<input type="hidden" id="foo88" name="fooname88"
value="somevaluevalue88"/>
<input type="hidden" id="foo89" name="fooname89"
value="somevaluevalue89"/>
<input type="hidden" id="foo90" name="fooname90"
value="somevaluevalue90"/>
<input type="hidden" id="foo91" name="fooname91"
value="somevaluevalue91"/>
<input type="hidden" id="foo92" name="fooname92"
value="somevaluevalue92"/>
<input type="hidden" id="foo93" name="fooname93"
value="somevaluevalue93"/>
<input type="hidden" id="foo94" name="fooname94"
value="somevaluevalue94"/>
<input type="hidden" id="foo95" name="fooname95"
value="somevaluevalue95"/>
<input type="hidden" id="foo96" name="fooname96"
value="somevaluevalue96"/>
<input type="hidden" id="foo97" name="fooname97"
value="somevaluevalue97"/>
<input type="hidden" id="foo98" name="fooname98"
value="somevaluevalue98"/>
<input type="hidden" id="foo99" name="fooname99"
value="somevaluevalue99"/>
<input type="submit" value="Submit" />
</form>
</body>
</html>


and modified the HelloController in hello.py thusly:

import logging

from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect

from helloworld.lib.base import BaseController, render

log = logging.getLogger(__name__)

class HelloController(BaseController):

    def index(self):
        # Return a rendered template
        #return render('/hello.mako')
        # or, return a string
        print " in hello index"
        return render ('hello.mako')


That is all it takes to break IE7.

I would be very grateful for help resolving this.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to