Running a 0.16.0 r11392 win32 client against a 0.16.0 r11366 fedora 21 server playing video overnight, got some draw errors client side after about 4 hours (about 2 hours after getting some spinners, which probably aren't related, but seem worth at least mentioning).
(Also worth noting, about an hour before the client side drawing errors, I also saw some encoding errors server-side, which I put into #1056, along with the xpra info just in case.)
2015-12-15 17:28:49,532 server is not responding, drawing spinners over the windows 2015-12-15 17:28:49,844 server is OK again 2015-12-15 17:32:02,022 server is not responding, drawing spinners over the windows 2015-12-15 17:32:02,293 server is OK again 2015-12-15 21:14:59,871 draw error Traceback (most recent call last): File "xpra\client\ui_client_base.pyc", line 2575, in _do_draw File "xpra\client\client_window_base.pyc", line 538, in draw_region File "xpra\client\window_backing_base.pyc", line 523, in draw_region File "xpra\client\window_backing_base.pyc", line 397, in paint_with_video_decoder File "xpra\client\window_backing_base.pyc", line 119, in do_clean_video_decoder File "xpra\codecs\dec_avcodec2\decoder.pyx", line 383, in xpra.codecs.dec_avcodec2.decoder.Decoder.clean (xpra/codecs/dec_avcodec2/decoder.c:5428) File "xpra\codecs\dec_avcodec2\decoder.pyx", line 411, in xpra.codecs.dec_avcodec2.decoder.Decoder.clean_decoder (xpra/codecs/dec_avcodec2/decoder.c:5884) File "xpra\codecs\dec_avcodec2\decoder.pyx", line 267, in xpra.codecs.dec_avcodec2.decoder.AVImageWrapper.clone_pixel_data (xpra/codecs/dec_avcodec2/decoder.c:3820 ) File "xpra\codecs\image_wrapper.pyc", line 127, in clone_pixel_data TypeError: 'NoneType' object does not support item assignment 2015-12-15 21:14:59,871 error processing draw packet Traceback (most recent call last): File "xpra\client\ui_client_base.pyc", line 2515, in _draw_thread_loop File "xpra\client\ui_client_base.pyc", line 2575, in _do_draw File "xpra\client\client_window_base.pyc", line 538, in draw_region File "xpra\client\window_backing_base.pyc", line 523, in draw_region File "xpra\client\window_backing_base.pyc", line 397, in paint_with_video_decoder File "xpra\client\window_backing_base.pyc", line 119, in do_clean_video_decoder File "xpra\codecs\dec_avcodec2\decoder.pyx", line 383, in xpra.codecs.dec_avcodec2.decoder.Decoder.clean (xpra/codecs/dec_avcodec2/decoder.c:5428) File "xpra\codecs\dec_avcodec2\decoder.pyx", line 411, in xpra.codecs.dec_avcodec2.decoder.Decoder.clean_decoder (xpra/codecs/dec_avcodec2/decoder.c:5884) File "xpra\codecs\dec_avcodec2\decoder.pyx", line 267, in xpra.codecs.dec_avcodec2.decoder.AVImageWrapper.clone_pixel_data (xpra/codecs/dec_avcodec2/decoder.c:3820 ) File "xpra\codecs\image_wrapper.pyc", line 127, in clone_pixel_data TypeError: 'NoneType' object does not support item assignment Exception ValueError: 'cannot convert float NaN to integer' in 'xpra.codecs.libav_common.av_log.log_callback_override' ignored Exception ValueError: 'cannot convert float NaN to integer' in 'xpra.codecs.libav_common.av_log.log_callback_override' ignored Traceback (most recent call last): File "logging\__init__.pyc", line 859, in emit File "logging\__init__.pyc", line 732, in format File "logging\__init__.pyc", line 473, in format File "logging\__init__.pyc", line 434, in formatTime TypeError: %d format: a number is required, not float Logged from file log.pyc, line 100 2015-12-15 21:14:59,966 avcodec error decoding 87829 bytes of h264 data 2015-12-15 21:14:59,966 frame 20, step 1 of 1 2015-12-15 21:14:59,966 options={'speed': 96, 'type': 'P', 'flush': 0, 'pts': 50, 'frame': 1, 'encoding': 'h264', 'quality': 96, 'csc': 'YUV444P'} 2015-12-15 21:14:59,966 decoder state: 2015-12-15 21:14:59,966 decoder_height = 492 2015-12-15 21:14:59,966 encoding = h264 2015-12-15 21:14:59,966 colorspace = YUV444P 2015-12-15 21:14:59,966 actual_colorspace = GBRP 2015-12-15 21:14:59,966 height = 492 2015-12-15 21:14:59,966 decoder_width = 510 2015-12-15 21:14:59,966 width = 510 2015-12-15 21:14:59,966 version = (56, 60, 100) 2015-12-15 21:14:59,966 formats = ['YUV422P', 'BGRX', 'GBRP', 'RGB', 'YUV420P', 'BGRA', 'ARGB', 'XRGB', 'YUV444P'] 2015-12-15 21:14:59,966 frames = 20 2015-12-15 21:14:59,966 type = avcodec 2015-12-15 21:14:59,966 buffers = 0 2015-12-15 21:14:59,966 Error: decode failed on 87829 bytes of h264 data 2015-12-15 21:14:59,966 510x492 pixels using avcodec 2015-12-15 21:14:59,966 decoding options={'speed': 96, 'type': 'P', 'flush': 0, 'pts': 50, 'frame': 1, 'encoding': 'h264', 'quality': 96, 'csc': 'YUV444P'} 2015-12-15 23:44:47,104 server is not responding, drawing spinners over the windows 2015-12-15 23:44:52,062 server is OK again
TypeError: 'NoneType' object does not support item assignment
is a rare race condition which should be fixed in r11412. (will backport)
Exception ValueError: 'cannot convert float NaN to integer' in 'xpra.codecs.libav_common.av_log.log_callback_override' ignored
is much more tricky: I don't see how we can get a Python ValueError
here as the only non plain-string "%s" formatting that we use is in calling the C function vsnprintf
, so r11415 takes the unsophisticated approach of catching everything and trying to log what we have
avcodec error decoding 87829 bytes of h264 data
are probably the ones that caused the error just above.. which we cannot see. (so I'm ignoring this one for now)
Because of the very close timestamps, I believe those 3 errors are related. The first one might have caused an error in ffmpeg decoding, which failed to get logged (the second error) and got reported as a general decoding failure (the third).
Errors firing in the new log callback override will look something like this (here with a simulated error):
Error in log callback at level 24 on format string 'Warning: data is not aligned! This can lead to a speedloss\n': <type 'exceptions.ValueError'>: fake error
@afarr: re-assigning to you to see if you can hit this again - no need to try though explicitly though, I think this one should be extremely rare to begin with, and it might now be impossible to hit. (hopefully)
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1057