Xpra: Ticket #873: 0.15.0 server throwing thread parse exception

Running an osx client 0.15.0 r9533 against a fedora 20 0.15.0 r9533 server, running a video on firefox to test various things, the server threw the following exception:

2015-05-27 17:58:48,509 sound-source codec: MPEG-1 Layer 3 (MP3)
Exception in thread parse (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 811, in __bootstrap_inner
  File "/usr/lib64/python2.7/threading.py", line 764, in run
  File "/usr/lib64/python2.7/site-packages/xpra/net/protocol.py", line 610, in _read_parse_thread_loop
  File "/usr/lib64/python2.7/site-packages/xpra/net/protocol.py", line 572, in _internal_error
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'error'
2015-05-27 18:05:42,354 using Pulseaudio device 'Monitor of Null Output'
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
2015-05-27 18:05:42,707 sound-source codec: MPEG-1 Layer 3 (MP3)

The client showed a couple of sound-sink errors, meanwhile: sound-sink internal error: write connection TwoFileCOnnection() reset: [Errno 32] Broken pipe ... which I think we've been seeing for a while, but no other interesting information.

Thu, 28 May 2015 04:09:36 GMT - Antoine Martin: priority, status changed

I have seen this error, and intend to fix it, but it is a low priority: it isn't pretty, but it is harmless.

This happens because when we restart the sound we now restart the process, during the process shutdown things can go wrong (as per the message most likely raised during interpreter shutdown) and we get random errors. We don't care about those since the process is going away anyway.

Sat, 30 May 2015 15:32:52 GMT - Antoine Martin: owner, status changed

This is hard to reproduce reliably on win32, managed once with control-C, but not with debugging enabled! (not happening with other plarforms)

@afarr: can you give me the end of the -d all output when this happens? You may find it easier to trigger by using XPRA_SOUND_FAKE_OVERRUN=2 to make it restart the sound pipeline every 2 seconds.

Thu, 25 Jun 2015 10:58:51 GMT - Antoine Martin:

Somewhat related to #896, which tries to ensure we exit all threads cleanly.

Fri, 31 Jul 2015 02:12:29 GMT - alas:

Hmm... running 0.15.4 r10055 osx client against a fedora 20 0.15.4 r10133, even with XPRA_SOUND_FAKE_OVERRUN=2 to trigger sound restarts every 2 seconds, I can't repro the traceback.

I am able to get the sound-sink internal error: write connection TwoFileCOnnection() reset: [Errno 32] Broken pipe error, but that sounds to be expected.

I am also now seeing a xpra[28212:d0b] unlockFocus called too many times. Called on <GdkQuartzView: 0x39f6e0>. message, but I'm not sure if it is actually an error.

Let me know if you still want a -d all log clipping.

Fri, 31 Jul 2015 02:42:46 GMT - Antoine Martin: status changed; resolution set

Closing this for now, we'll re-open if this happens again. 0.16 improves the situation further in 2 ways:

Sat, 23 Jan 2021 05:08:28 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/873