When receiving a stream from a contact, if pipe is broken, the whole backend become frozen.
Steps to reproduce:
- with one profile "toto", receive a pipe to e.g. mpv with:
"jp pipe in -cp toto | mpv -"
- with an other profile "titi", pipe out a movie with:
"jp pipe out -cp titi louise@tazar2.int < movie_stream.webm
- stop the stream immediately, it must not be fully sent to the other size already
expected result: movie is stopped, everything works
actual result: received get this trace:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 230, in maybe_handle_message
self._handler(args, *kwargs)
File "/home/goffi/dev/lib/sat_frontends/jp/base.py", line 899, in onActionNew
callback(action_data, action_id, security_limit, profile)
File "/home/goffi/dev/lib/sat_frontends/jp/cmd_pipe.py", line 99, in onPipeAction
shutil.copyfileobj(f, sys.stdout)
File "/usr/lib/python2.7/shutil.py", line 66, in copyfileobj
fdst.write(buf)
IOError: [Errno 32] Broken pipe
then everything is frozen in backend, no profile can do anything anymore.