As soon as you post the fix I will update the web2py version and keep an ear out if anyone has any connectivity issues.
Thanks. On May 10, 9:35 am, Thadeus Burgess <thade...@thadeusb.com> wrote: > My original concerns are eased, as I thought 120 people out of the > 1000 that visited the site were getting errors [1], which seems to not > be the case. > > If I were to go to all of the trouble to install nginx, I might as > well stop using apache and install cherokee. I have been running my > blog on cherokee with no problems. > > Massimo, looks reasonable... we can always change it later. > > [1] the requests are unique visits, no robots included > > -- > Thadeus > > On Mon, May 10, 2010 at 1:53 AM, Graham Dumpleton > > <graham.dumple...@gmail.com> wrote: > > > On May 10, 3:11 pm, Thadeus Burgess <thade...@thadeusb.com> wrote: > >> Looking at the sites analytics, there are roughly about 1000 requests > >> a day, of which I will receive 100 of these tickets, give or take 20. > > > If you want a quick solution, stick nginx in front as a proxy and you > > likely would eliminate the errors. This is because nginx helps to > > isolate you from slow clients and some of the problems they can cause. > > You can also offload static file serving to nginx as well, speeding > > that up and allowing you to use less resources in Apache to serve same > > number of requests. > > > I'll comment later when have time on Massimo's comments. > > > Graham > > >> On Mon, May 10, 2010 at 12:10 AM, Thadeus Burgess <thade...@thadeusb.com> > >> wrote: > >> > What if there was an IO error with cgi.FieldStorage ? > > >> > -- > >> > Thadeus > > >> > On Mon, May 10, 2010 at 12:06 AM, mdipierro <mdipie...@cs.depaul.edu> > >> > wrote: > >> >> Yes. it is safe to ignore, but it still causes a minor slow down > >> >> because web2py issues a ticket and that may be unnecessary. > > >> >> On May 10, 12:01 am, Thadeus Burgess <thade...@thadeusb.com> wrote: > >> >>> So you are saying that a user with a slow connection (which consists > >> >>> of a large portion of the sites user base) clicks reload, so their > >> >>> browser stops communicating with that request, so web2py catches it as > >> >>> an IOError... so then is this safe to ignore? > > >> >>> Below is a log that I found in apache2.error.log > > >> >>> [Sun Jan 31 13:42:50 2010] [error] [client ******] (70007)The timeout > >> >>> specified has expired: mod_wsgi (pid=3961): Unable to get bucket > >> >>> brigade for request., referer:http://mysite.com/page1 > >> >>> [Sun Jan 31 13:42:51 2010] [error] [client ******] mod_wsgi > >> >>> (pid=3926): Exception occurred processing WSGI script > >> >>> '/web2py/wsgihandler.py'. > >> >>> [Sun Jan 31 13:42:51 2010] [error] [client ******] IOError: failed to > >> >>> write data > > >> >>> -- > >> >>> Thadeus > > >> >>> On Sun, May 9, 2010 at 11:52 PM, Graham Dumpleton > > >> >>> <graham.dumple...@gmail.com> wrote: > > >> >>> > On May 10, 1:51 pm, Thadeus Burgess <thade...@thadeusb.com> wrote: > >> >>> >> Ticket. I usually see them the next day when I check admin. > > >> >>> >> No, it is usually just one IP but it happens to a lot of people at > >> >>> >> the > >> >>> >> same time, scaled by the amount of traffic being put on the server. > > >> >>> > Then it is likely that the ISP or network all the requests were > >> >>> > routed > >> >>> > by dropped all the connections for whatever reason. > > >> >>> >> Roughly about 10% of the requests generate this error. > > >> >>> >> > A user not waiting for a request to complete before clicking on > >> >>> >> > another link or pressing reload. In other words, client dropped > >> >>> >> > original connection. > > >> >>> >> Obviously this is a web2py issue then, because I don't have any > >> >>> >> problems when I go click-happy on other web sites. > > >> >>> > Part of the problem is that there is no standard for what type of > >> >>> > Python exception is generated by a dropped connection. The mod_python > >> >>> > and mod_wsgi package so happens to use IOError, but different > >> >>> > descriptions. Other WSGI servers are within their rights to use a > >> >>> > completely different Python exception or yet another description > >> >>> > against an IOError. Thus, it becomes really hard for a generic > >> >>> > framework that can be hosted in various ways to make a judgement as > >> >>> > to > >> >>> > whether a failure on read was due to a particular type of error. Thus > >> >>> > it becomes hard to ignore errors for loss of connection. You also by > >> >>> > ignoring them, limit an applications ability to take some special > >> >>> > action when connections are dropped. > > >> >>> > It therefore isn't obvious what to do and most Python frameworks will > >> >>> > as a result just pass the exception up the stack and cause a 500 > >> >>> > response. If you have a mailout option for errors back to system > >> >>> > administrators then you obviously may get an lot of emails. Best you > >> >>> > might do is for that mailout middleware to allow a user to supply > >> >>> > their own rules, ie., exception types and desription regex, for > >> >>> > things > >> >>> > that should be ignored as far as mailout message to admin. > > >> >>> > Graham > > >> >>> >> On Sun, May 9, 2010 at 9:55 PM, mdipierro <mdipie...@cs.depaul.edu> > >> >>> >> wrote: > >> >>> >> > ure about the problem but I had a few instances of people > >> >>> >> > clicking reload a lot (and I mean a lot). So I use thi