Xpra: Ticket #1057: Got draw errors with win32 client

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


Thu, 17 Dec 2015 04:12:33 GMT - Antoine Martin: owner changed


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)


Wed, 16 Mar 2016 07:28:17 GMT - Antoine Martin: status changed; resolution set


Sat, 23 Jan 2021 05:13:43 GMT - migration script:

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