Bug 3230 - Ship a 64 bit Linux client
Summary: Ship a 64 bit Linux client
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Client platforms (show other bugs)
Version: 3.0.0
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.0.0
Assignee: Pierre Ossman
URL:
Keywords: hean01_tester
: 4370 (view as bug list)
Depends on: 1934
Blocks:
  Show dependency treegraph
 
Reported: 2009-09-02 11:43 CEST by Peter Åstrand
Modified: 2012-11-28 12:13 CET (History)
1 user (show)

See Also:
Acceptance Criteria:


Attachments

Description Peter Åstrand cendio 2009-09-02 11:43:01 CEST
Ship a 64 bit Linux client.
Comment 1 Pierre Ossman cendio 2012-06-04 16:52:59 CEST
Fixed now.

Tester needs to verify functionality in all parts of the client. No cheating! Arch sensitive bugs tend to be subtle and well hidden.

You should also to try installing the rpms and debs on as many different systems as possible to make sure we do not have any problems in the packaging.
Comment 2 Henrik Andersson cendio 2012-06-05 09:37:17 CEST
Tested the 64bit client on Fedora 17, connection hangs for ever 
and memory is allocated until system dies...
Comment 3 Henrik Andersson cendio 2012-06-05 09:38:31 CEST
(In reply to comment #2)
> Tested the 64bit client on Fedora 17, connection hangs for ever 
> and memory is allocated until system dies...

Commit r25258 and r25259 fixes the issue.
Comment 4 Pierre Ossman cendio 2012-06-05 12:32:12 CEST
Need to have another look at the packaging of the tar balls, and at the warnings in the build log.
Comment 5 Pierre Ossman cendio 2012-06-05 12:39:39 CEST
r25261 makes sure we have a version and build number for the tar balls (like we do for all other clients).
Comment 6 Pierre Ossman cendio 2012-06-05 12:48:37 CEST
Better naming of the unpacked directories in r25263.
Comment 7 Pierre Ossman cendio 2012-06-05 13:03:34 CEST
Renamed the Windows "unpacked" in a similar manner for consistency in r25264. Tester needs to check that this client still works.
Comment 8 Pierre Ossman cendio 2012-06-05 13:38:47 CEST
Fixed some bad format strings in tlclient. Other than that there were only two more instances of possible 64-bit problems:

 - vncconfig (don't care, the thing needs a rewrite)

 - pulseaudio (debug log code, not crucial)
Comment 9 Peter Åstrand cendio 2012-06-07 08:51:05 CEST
When passing username and password on the command line, tlclient keeps on allocting memory, but nothing else. It managed to use 4.7 GiB before I could kill it.
Comment 10 Henrik Andersson cendio 2012-06-07 09:11:51 CEST
(In reply to comment #9)
> When passing username and password on the command line, tlclient keeps on
> allocting memory, but nothing else. It managed to use 4.7 GiB before I could
> kill it.

There were more places in code werer string::npos was compared
against wrong data type, grepped and fixed the issue in all places.

Commit 25286
Comment 11 Pierre Ossman cendio 2012-06-07 11:22:25 CEST
Documentation updated. Tester should verify that the requirements and all installation instructions are correct.
Comment 12 Aaron Sowry cendio 2012-06-08 12:42:03 CEST
Possibly related: bug 4319.
Comment 13 Pierre Ossman cendio 2012-08-13 16:54:16 CEST
*** Bug 4370 has been marked as a duplicate of this bug. ***
Comment 14 Pierre Ossman cendio 2012-08-13 16:55:22 CEST
Smart card bits fail to work on Fedora 16, and we get a crash on exit:

#0  pcsc_cancel (ctx=0x8f8d10) at reader-pcsc.c:590
        rv = 0
        gpriv = 0x0
        __FUNCTION__ = "pcsc_cancel"
#1  0x00007ffff1667bbb in C_Finalize (pReserved=<optimized out>)
    at pkcs11-global.c:295
        i = <optimized out>
        p = <optimized out>
        slot = <optimized out>
        rv = 0
        __FUNCTION__ = "C_Finalize"
#2  0x00000000004399f0 in PKCS11Module::Close (this=0x8a7d80)
    at tlclient_pkcs11.cc:240
No locals.
#3  0x000000000043ba48 in PKCS11Module::~PKCS11Module (this=0x8a7d80, 
    __in_chrg=<optimized out>) at tlclient_pkcs11.cc:41
No locals.
#4  0x0000000000415eb2 in MainWindow::~MainWindow (this=0x8aa8c0, 
    __in_chrg=<optimized out>) at tlclient_mainwindow.cc:444
No locals.
#5  0x0000000000415f2d in MainWindow::~MainWindow (this=0x8aa8c0, 
    __in_chrg=<optimized out>) at tlclient_mainwindow.cc:449
No locals.
---Type <return> to continue, or q <return> to quit---
#6  0x0000000000411ed9 in TLClient::runApplication (this=0x89dee0)
    at tlclient_tlclient.cc:419
        pwfailure = false
#7  0x000000000040f6be in main (argc=1, argv=0x7fffffffe488)
    at tlclient_main.cc:288
        tlapp = 0x89dee0
        ld_bind_now = "LD_BIND_NOW=1"
        icon_sizes = {48, 24, 16}
        count = 3
        locale_directory = {static npos = 18446744073709551615, 
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
            _M_p = 0x8994b8 "/opt/thinlinc/lib/tlclient/locale"}}
        icons = {0x8994a0, 0x8994f0, 0x89d8f0}
        result = <optimized out>
Comment 15 Peter Åstrand cendio 2012-08-20 13:44:15 CEST
The RPM dependencies are wrong for a 64-bit CentOS/RHEL: 

fel: Ouppfyllda beroenden:
	libX11.so.6 behövs av thinlinc-client-3.4.0post-3608.x86_64
	libz.so.1 behövs av thinlinc-client-3.4.0post-3608.x86_64

If you use "yum localinstall", it wants to install the i686 packages as dependencies:

Installing:
 thinlinc-client          x86_64          3.4.0post-3608           /thinlinc-client-3.4.0post-3608.x86_64           14 M
Installing for dependencies:
 libX11                   i686            1.3-2.el6                base                                            585 k
 libXau                   i686            1.0.5-1.el6              base                                             22 k
 libxcb                   i686            1.5-1.el6                base                                            104 k
 zlib                     i686            1.2.3-27.el6             base                                             72 k

So at least for this platform, instead of requiring:

Requires: libX11.so.6
Requires: libz.so.1

...we need to require the 64-bit variants:

libz.so.1()(64bit)  
libX11.so.6()(64bit)  

However, we need to check if that convention is really used on all other RPM systems as well. Otherwise, perhaps we should limit the dependencies to the 32-bit client.
Comment 16 Pierre Ossman cendio 2012-08-31 11:37:50 CEST
(In reply to comment #15)
> The RPM dependencies are wrong for a 64-bit CentOS/RHEL: 
> 
> fel: Ouppfyllda beroenden:
>     libX11.so.6 behövs av thinlinc-client-3.4.0post-3608.x86_64
>     libz.so.1 behövs av thinlinc-client-3.4.0post-3608.x86_64
> 

Removed the dependencies completely in r25704 as they were originally added to make it easier to install the 32-bit client on a 64-bit system. With a native 64-bit client, this is no longer a priority.
Comment 17 Pierre Ossman cendio 2012-08-31 12:34:25 CEST
(In reply to comment #14)
> Smart card bits fail to work on Fedora 16, and we get a crash on exit:
> 

Crash fixed in r25705. Still not properly working though. Has something to do with loading libpcsc-lite.so.
Comment 18 Pierre Ossman cendio 2012-08-31 13:33:44 CEST
Bah! More libtool braindeadness. Unlike dlopen(), lt_dlopen() will choke on bad libs (e.g. wrong arch) and not continue on to find a better lib.

This in itself isn't enough to break it, but it is also compiled to look in /lib and /usr/lib first, meaning it will find 32-bit libs before 32-bit ones.
Comment 19 Pierre Ossman cendio 2012-08-31 13:52:11 CEST
Fixed in r25706.
Comment 20 Henrik Andersson cendio 2012-10-16 09:40:31 CEST
Extensivly tested 64bit client build 3680 against 64bit server build 3680:

Sound redirection, verified using rythmbox (gstreamer)
Video, sintel 720p fullscreen

Smartcard tunneling, login using latest test SITHS smartcard opensc-tool
and pkcs15-tool to pick up teh certificate verified with openssl to display
the cert on server side.

Thinlocal redirection, printed a few test pages to client local printer

Local drives redirection, copy from local to remote, delete and rename of files.

Tested various combinations of optimization settings.

Shadowing.

No problems at all with the tests above, probably we should test 64bit client
against a 32bit server for a complete test, thoughts ?
Comment 21 Henrik Andersson cendio 2012-10-17 11:05:30 CEST
I have remade the tests with 64bit client against 32bit server build 3688 
with same success as previous test, considering as closed.

Note You need to log in before you can comment on or make changes to this bug.