Subject: unable to copy to clipboard with more than 256 kB

From: Pawel Kalita <[email-masked]>
Date: Thu, 21 Sep 2017 17:18:34 +0200

Package: x2goclient (Windows 7 SP1 64 Bit)
Version: 4.0.5.2 (x2goclient 4.1.0.0 does not work, crashes on connect, bug
report-#1163)

Package: x2goclient (Fedora 26)
Version: 4.1.0.0-1.fc26

Package: x2goserver (CentOS Linux 7.3)
Version: v4.0.1.20

Multiple applications are affected such firefox or databasetools e. g.
When connecting from physical windows or linux desktop with locally
installed pgAdmin3/ or /pgAdmin4 to the remote postgresql database I can
copy without any problems mapped_value text executed from a SQL query with
more than 250000 characters and paste it in any editor on physical
windows/linux desktop.

When connecting from physical windows or linux desktop to the remote
postgresql database using x2goclient and trying to copy and paste data from
remote database to the physical windows/linux desktop editor it simply does
not work.

The issue is reproducible.

Probably it is a connected issue
https://www.uninformativ.de/blog/postings/2017-04-02/0/POSTING-en.html

---

From: Ulrich Sibiller <[email-masked]>
Date: Thu, 21 Sep 2017 23:51:13 +0200

> more than 250000 characters and paste it in any editor on physical

Actually the size should be 256kb. The corresponding code is in
nxagent and looks like this:

      /*
      * The state machine is able to work in two phases. In the first
      * phase we get the size of property data, in the second we get
      * the actual data. We save a round-trip by requesting a prede-
      * termined amount of data in a single GetProperty and by discar-
      * ding the remaining part. This is not the optimal solution (we
      * could get the remaining part if it doesn't fit in a single
      * reply) but, at least with text, it should work in most situa-
      * tions.
      */

     lastClientStage = SelectionStageQueryData;
     lastClientPropertySize = 262144;

(dont let the "last" confuse you here). So I guess increasing that
value would help in your situation. However, it looks like a bug,
since the code should loop and work wiht more than 256kb. But for some
reason not yet understood it does not...

> https://www.uninformativ.de/blog/postings/2017-04-02/0/POSTING-en.html

Could be. nx contains an own mechanism similar to INCR and I have not
seen any reference to INCR within the code. So maybe it should learn
about INCR and extend its own mechanism.

Thanks for reporting that problem!

Uli