With post-buffering, it works fine.

Oddly enough, I just setup an amazon ec2 instance for reproducing the bug,
but the bug doesn't appear in that instance. The OS I am using in production
is CentOS5, I will try some more on my machines to see with what kind of
environment, the bug will appear.

2011/9/5 Roberto De Ioris <[email protected]>

>
> Il giorno 05/set/2011, alle ore 05:05, Victor Lin ha scritto:
>
> > Hi, To make it easier to reproduce the bug, I just rewrite the test
> files, you can clone the hg repo here.
> > https://bitbucket.org/victorlin/uwsgi_bug/
> >
> > To run the uwsgi, you can type
> >
> >     uwsgi --yaml uwsgi.yaml
> >
> > You need to include the nginx config, too
> >
> >     include /path/to/uwsgi_bug/*.nx.conf;
> >
> > With the running wsgi app under uwsgi with nginx, you can then run
> >
> >     send_req.py
> >
> > It reads my_req.txt and send to the nginx server. As result, you can see
> >
> >       Traceback (most recent call last):
> >         File "./wsgi.py", line 5, in application
> >               print req.str_POST
> >         File "/home/nowin/lib/python2.7/webob/request.py", line 528, in
> str_POST
> >               return self._str_POST
> >         File "/home/nowin/lib/python2.7/webob/request.py", line 558, in
> _str_POST
> >               keep_blank_values=True)
> >         File "/usr/local/lib/python2.7/cgi.py", line 508, in __init__
> >               self.read_multi(environ, keep_blank_values, strict_parsing)
> >         File "/usr/local/lib/python2.7/cgi.py", line 632, in read_multi
> >               environ, keep_blank_values, strict_parsing)
> >         File "/usr/local/lib/python2.7/cgi.py", line 510, in __init__
> >               self.read_single()
> >         File "/usr/local/lib/python2.7/cgi.py", line 647, in read_single
> >               self.read_lines()
> >         File "/usr/local/lib/python2.7/cgi.py", line 669, in read_lines
> >               self.read_lines_to_outerboundary()
> >         File "/usr/local/lib/python2.7/cgi.py", line 697, in
> read_lines_to_outerboundary
> >               line = self.fp.readline(1<<16)
> >         File "/home/nowin/lib/python2.7/webob/request.py", line 1292, in
> readline
> >               self._check_disconnect()
> >         File "/home/nowin/lib/python2.7/webob/request.py", line 1311, in
> _check_disconnect
> >               + "(%d more bytes were expected)" % self.remaining
> >       webob.request.DisconnectionError: The client disconnected while
> sending the POST/PUT body (336 more bytes were expected)
> >
> > If you want to see the missing \n ouput, just replace "If True:" in
> wsgi.py with "If False:", the output should be
> >
> >     '------WebKitFormBoundaryAQRPBQgGHAhs61hx\r'
> >     'Content-Disposition: form-data; name="image";
> filename="log.txt"\r\n'
> >     'Content-Type: text/plain\r\n'
> >     '\r\n'
> >     'hello\r\n'
> >     '------WebKitFormBoundaryAQRPBQgGHAhs61hx\r\n'
> >     'Content-Disposition: form-data; name="name"\r\n'
> >     '\r\n'
> >     '\r\n'
> >     '------WebKitFormBoundaryAQRPBQgGHAhs61hx\r\n'
> >    'Content-Disposition: form-data; name="submit"\r\n'
> >     '\r\n'
> >     'Submit\r\n'
> >     '------WebKitFormBoundaryAQRPBQgGHAhs61hx--\r\n'
> >
> > As you can see the tail \n is missing in first line.
> >
> > The versions I have tested are uWSGI 0.9.9.1 and uWSGI 0.9.8. The version
> of Nginx is 1.0.4.  If you need further information, just tell me. I hope
> this could be helpful for improving uWSGI :)
> >
> > Thanks.
> > Victor Lin.
>
>
> No way to reproduce the error :(
>
> While i try to manage it, can you confirm that enabling post-buffering
> solves the issue ? (you should try with both tiny and big files)
>
> Thanks again
>
> --
> Roberto De Ioris
> http://unbit.it
> JID: [email protected]
>
> _______________________________________________
> uWSGI mailing list
> [email protected]
> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to