Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django + WebKit = Broken pipe

I'm running the Django 1.2 development server and I get these Broken Pipe error messages whenever I load a page from it with Chrome or Safari. My co-worker is getting the error as well when he loads a page from his dev server. We don't have these errors when using Opera or Firefox.

Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 281, in run self.finish_response() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 321, in finish_response self.write(data) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 417, in write self._write(data) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 300, in write self.flush() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 286, in flush self._sock.sendall(buffer) error: [Errno 32] Broken pipe 

Can anyone help me out? I'm going crazy over this!

like image 994
jmagnusson Avatar asked May 19 '10 17:05

jmagnusson


2 Answers

This is not a Django issue. Your browser is most likely doing something erroneous.

This is common error which happens whenever your browser closes the connection while the dev server is still busy sending data.

Check this Django ticket for more info.

like image 148
Yuval Adam Avatar answered Oct 07 '22 01:10

Yuval Adam


I just recently ran into this issue with the django v1.1.1 dev server and Chrome 7.0.517.44.

The "fix" that I've discovered is always doing a hard refresh (hold Shift and click the reload button in Chrome) on the page after the initial load, which causes Chrome to ignore it's cache for any resources requested by the refresh.

As such, this leads me to believe it's an issue with Chrome's notorious tendency to cache everything it possibly can; even when it shouldn't. My guess is that Chrome is making a resource request and then immediately dropping the connection for said resource once it realizes it has the resource cached.

This would almost be a bearable workaround, except any AJAX requests will still cause problems.

like image 30
mateolargo Avatar answered Oct 07 '22 01:10

mateolargo