Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#21687 - [woof] Server crash when client is trying to download

Attached to Project: Community Packages
Opened by Peter B. Jørgensen (peder2tm) - Saturday, 13 November 2010, 14:12 GMT
Last edited by Chris Brannon (cmb) - Tuesday, 15 February 2011, 15:09 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Chris Brannon (cmb)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:
After the transition to python 3 woof doesn't work anymore.

Steps to reproduce:
share a file with woof with 'woof TESTFILE'
open another terminal and do 'wget localhost:8080'

Additional info:
The package version is 20091227-3

Here's the error message in the terminal:
woof TESTFILE
Now serving on http://10.0.0.100:8080/
localhost.localdomain - - [13/Nov/2010 15:10:21] "GET /TESTFILE HTTP/1.0" 200 -
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 54990)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 301, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------

This task depends upon

Closed by  Chris Brannon (cmb)
Tuesday, 15 February 2011, 15:09 GMT
Reason for closing:  Upstream
Additional comments about closing:  Probably moving to AUR.
Comment by Aaron Bull Schaefer (elasticdog) - Monday, 22 November 2010, 04:08 GMT
I've contacted the developer about a proper work-around and am currently waiting for a response.
Comment by Aaron Bull Schaefer (elasticdog) - Friday, 07 January 2011, 19:34 GMT
Aaron Bull Schaefer (elasticdog@aur.archlinux.org) wrote:
> Hi Simon, I'm a packager for Arch Linux, and I have recently come
> across an issue with woof and Python 2.7. Here's the gist of it:
>
> $ woof example.txt
> Now serving on http://192.168.1.104:8080/
> aaronslaptop - - [21/Nov/2010 19:05:16] "GET /example.txt HTTP/1.1" 200 -
> ----------------------------------------
> Exception happened during processing of request from ('192.168.1.243', 58388)
> Traceback (most recent call last):
> File "/usr/lib/python2.7/SocketServer.py", line 284, in
> _handle_request_noblock
> self.process_request(request, client_address)
> File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
> self.finish_request(request, client_address)
> File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
> self.RequestHandlerClass(request, client_address, self)
> File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
> self.finish()
> File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
> self.wfile.flush()
> File "/usr/lib/python2.7/socket.py", line 301, in flush
> self._sock.sendall(view[write_offset:write_offset+buffer_size])
> error: [Errno 32] Broken pipe
> ----------------------------------------
>
> ...I don't do much Python development, and so thought I'd check with
> you to see if you had any suggestions. This has been reproduced by a
> number of users and on numerous machines. Googling for broken pipe
> errors wasn't too enlightening either. Any help you can give on
> working around this issue would be much appreciated!


Uh, I don't really know what is going on there. A "broken pipe" in this
context probably means, that the network connection broke down for some
reason. It would be helpful to see a wireshark dump of this, maybe it
then is possible to discern, what the actual reason for this bug is. It
at least is not some blatantly obvious programming error... :)

I did not see this too frequently here, so I'd be glad if you could
create a wireshark dump and maybe provide it to me. Note that there
might other sensitive data in the wireshark dump, so make sure you check
it before just sending it to me.

Hope this helps,
Simon
--
simon@budig.de http://simon.budig.de/
Comment by Peter B. Jørgensen (peder2tm) - Saturday, 08 January 2011, 18:42 GMT
To me it happens every time I try. I've attached a capture file from wireshark.

wget --tries=1 10.0.0.118:8080
--2011-01-08 19:29:11-- http://10.0.0.118:8080/
Connecting to 10.0.0.118:8080... connected.
HTTP request sent, awaiting response... 302 Found
Location: /TESTFILE [following]
--2011-01-08 19:29:11-- http://10.0.0.118:8080/TESTFILE
Connecting to 10.0.0.118:8080... connected.
HTTP request sent, awaiting response... No data received.
Giving up.
   woof.cap (2.6 KiB)
Comment by Andrea Scarpino (BaSh) - Sunday, 16 January 2011, 12:45 GMT
orphan. assigned to last packager
Comment by Chris Brannon (cmb) - Sunday, 16 January 2011, 16:37 GMT
At least I know where it's failing. When you download a file from woof,
woof forks a child process to handle the actual download. And for whatever
reason, we're getting SIGPIPE in that child process. Could the parent
possibly be doing something to close the connection? I don't know,
but I'll try to contact upstream.

Sorry about this. It's basically my fault, because I rebuilt this during
the Great Python Transition of 2010.

-- Chris
Comment by Chris Brannon (cmb) - Monday, 07 February 2011, 21:44 GMT
Upstream is aware of the issue. Unfortunately, it doesn't look like there's
an easy fix for Python 2.7.
I'm going to close the bug soon.
Since this package will likely be broken for the foreseeable future, I'm
probably going to send it back to [unsupported].
Comment by Peter B. Jørgensen (peder2tm) - Tuesday, 08 February 2011, 20:08 GMT
I have created a patch, that makes woof work with python 3 and submitted it to AUR as woof-python3 http://aur.archlinux.org/packages.php?ID=46323
Most work is done by the 2to3 tool. This at least solved the problem for me.

Loading...