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
