Xpra: Ticket #891: xor error, build clean missing files, man page, clipboard limit

I've noticed few issues with 0.15.0:

Without python-rencode client log the following errors to console:

2015-06-17 10:25:28,783 error processing draw packet
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/xpra/client/ui_client_base.py", line 1978, in _draw_thread_loop
    self._do_draw(packet)
  File "/usr/lib/python2.7/dist-packages/xpra/client/ui_client_base.py", line 2024, in _do_draw
    window.draw_region(x, y, width, height, coding, data, rowstride, packet_sequence, options, [record_decode_time])
  File "/usr/lib/python2.7/dist-packages/xpra/client/client_window_base.py", line 423, in draw_region
    self._backing.draw_region(x, y, width, height, coding, img_data, rowstride, options, callbacks)
  File "/usr/lib/python2.7/dist-packages/xpra/client/window_backing_base.py", line 473, in draw_region
    self.paint_rgb24(img_data, x, y, width, height, rowstride, options, callbacks)
  File "/usr/lib/python2.7/dist-packages/xpra/client/window_backing_base.py", line 264, in paint_rgb24
    rgb24_data = self.process_delta(raw_data, width, height, rowstride, options)
  File "/usr/lib/python2.7/dist-packages/xpra/client/window_backing_base.py", line 186, in process_delta
    rgb_data = xor_str(img_data, ldata)
  File "xpra/codecs/xor/cyxor.pyx", line 19, in xpra.codecs.xor.cyxor.xor_str (xpra/codecs/xor/cyxor.c:750)
AssertionError: cyxor cannot xor strings of different lengths (<type 'str'>:13860 vs <type 'str'>:10395)

---

The following files are not cleaned in the build directory:

build/etc/xpra/xpra.conf
xpra/server/cystats.c
xpra/server/region.c

---

Lintian complains "hyphen-used-as-minus-sign" due to unescaped "-" characteres in line 977 of the xpra.1 file.



Wed, 17 Jun 2015 02:31:46 GMT - onlyjob:

Just noticed those errors logged even with python-rencode...


Wed, 17 Jun 2015 08:06:55 GMT - Antoine Martin: owner changed

Without python-rencode..


FYI: rencode is faster and better, though we now also have a builtin cython bencoder too.


hyphen-used-as-minus-sign


fixed in r9646

The following files are not cleaned in the build directory:


The cython files have been added in r9647, I don't see why we would clean a specific file in "build/", we should either clean the whole directory or nothing at all?

cyxor cannot xor strings of different lengths


As per ticket:861#comment:6, I cannot reproduce this one. Do you have specific steps? Can you post the XPRA_INTEGRITY_HASH=1 output? Does lowering the XPRA_MAX_DELTA_HITS trigger more easily?


Wed, 17 Jun 2015 08:48:33 GMT - onlyjob:

Yep, I'm taking care of "rencode" in Debian, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788918

I'm not sure why build/etc/xpra/xpra.conf is the only file left in build directory after cleanup...

Unfortunately I do not have specific steps to reproduce the issue. I'm just attaching to server (0.14.25 or 0.15.0) from client 0.15.0 and while I'm using RGB encoding and it occasionally logged... No such issue was on client 0.14.*... I will try XPRA_INTEGRITY_HASH=1 and XPRA_MAX_DELTA_HITS<20.


Wed, 17 Jun 2015 09:04:25 GMT - Antoine Martin:

xpra.conf is the only file left in build directory after cleanup...


$ rm -fr build
$ ./setup.py build
$ find build/ -type f | wc -l
265
$ ./setup.py clean
$ find build/ -type f | wc -l
238

What am I missing?


Wed, 17 Jun 2015 11:07:04 GMT - onlyjob:

After build I give command python setup.py clean -a which removes all files from the "build" directory except the build/etc/xpra/xpra.conf which is the only file left (when there shall be none I presume)... What am I missing? ;)

I tried attaching with XPRA_INTEGRITY_HASH=1 and XPRA_MAX_DELTA_HITS=10 but it seems to make no difference...


Wed, 17 Jun 2015 11:37:12 GMT - Antoine Martin:

$ rm -fr build
$ ./setup.py build
$ ./setup.py clean -a
$ ls -l build/
total 8
drwxrwxr-x. 3 antoine antoine 4096 Jun 17 13:34 etc
drwxrwxr-x. 3 antoine antoine 4096 Jun 17 13:33 lib.linux-x86_64-2.7

clean -a, still not empty!


I tried attaching with XPRA_INTEGRITY_HASH=1 and XPRA_MAX_DELTA_HITS=10 but it seems to make no difference...


Is there a specific app or trigger for this bug? (beyond using rgb as encoding) If so, pleae add to #861.


Wed, 17 Jun 2015 12:00:08 GMT - onlyjob:

I think in my case Debian packaging tools clean lib.linux-x86_64-2.7 but /etc is left behind...

I'm not sure about which app. triggers the issue but it could be related to clipboard that works very dodgy for me ever since I started to use 0.15.0... I mostly use kmail in Xpra session...


Wed, 17 Jun 2015 12:13:01 GMT - Antoine Martin: owner, status changed

I think in my case Debian packaging tools clean...


OK, It just seems wrong to add "build/" things to the clean list. I've done this for trunk in r9656. I am keeping this ticket open, and if no other platforms break then I'll eventually apply this to 0.15.x


I'm not sure about which app. triggers the issue but it could be related to clipboard that works very dodgy for me ever since I started to use 0.15.0...


That's very very unlikely to be related to the clipboard: this is a picture encoding or decoding bug, the clipboard doesn't interact with this at all.

As for 0.15.x: there were zero changes to the clipboard code:

$ diff -urN v0.15.x/src/xpra/clipboard v0.14.x/src/xpra/clipboard | wc -l
0

Wed, 17 Jun 2015 13:28:44 GMT - onlyjob:

I'm not sure how those errors are related to clipboard trouble... Maybe they are not related. Everything seems to work despite the errors except clipboard that stops working after some time (which is not happening on 0.14.*)... I'm not sure how to explain...


Wed, 17 Jun 2015 15:13:27 GMT - onlyjob:

Clipboard trouble revealed itself: "clipboard toggled to off by the server, reason: more than 10 clipboard requests per second!". As you already guessed I'm using clipboard manager and unfortunately I'm yet to see a non-polling one... Please advise how can I disable (or tune) clipboard autodisable on server?

--

As for client-sided errors they seems to be OpenGL-related. So far I could not reproduce with --opengl=no. Here is what Xpra prints about my OpenGL on start:

PyOpenGL warning: missing accelerate module
PyOpenGL warning: missing array format handlers: numeric, vbo, vbooffset
OpenGL Version: 3.0 Mesa 10.5.5

According to "Session info" it is X.Org/Gallium 0.4 on AMD TAHITI on Debian "testing".


Wed, 17 Jun 2015 16:30:01 GMT - Antoine Martin:

clipboard toggled to off by the server, reason: more than 10 clipboard requests per second!


See #877


Please advise how can I disable (or tune) clipboard autodisable on server?


0.15.1 raises the limit to 20, and you can tune it with XPRA_CLIPBOARD_LIMIT=

As you already guessed I'm using clipboard manager and unfortunately I'm yet to see a non-polling one...


Not a use case we can ever hope to deal with nicely, but maybe #812 will help.


As for client-sided errors they seems to be OpenGL-related


Interesting, not sure why that would make a difference - but I've added this info to ticket:861#comment:7


PyOpenGL warning: missing accelerate module (..)


FYI: this only means that you are missing the OpenGL_accelerate package. (unchanged since 0.10.x or older IIRC)


I don't see anything left in this ticket that needs action, can we close?


Wed, 17 Jun 2015 23:12:28 GMT - onlyjob: status changed; resolution set

Yeah, I know about OpenGL_accelerate but I still have no time to package it... I've mentioned it because I thought it might be relevant...

Thanks for the tip about XPRA_CLIPBOARD_LIMIT. I'll try that. Unfortunately I think it might not be the only problem with clipboard because sometimes it stops working without message from server and in the menu "Clipboard" entry stays checked... I'll open another ticked for this if XPRA_CLIPBOARD_LIMIT won't help...

Let's close this ticket. Thanks.


Wed, 16 Dec 2015 03:22:48 GMT - Antoine Martin: summary changed

(editing ticket title)


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

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