Linux client crashes on reconnect

Discussion in 'Parallels Client for Linux' started by AndreyOliveira, Jul 1, 2021.

  1. AndreyOliveira

    AndreyOliveira Bit poster

    Messages:
    6
    Hi,
    I use Parallels Client for Linux to access a load-balanced Terminal Server farm with TS Session Broker.

    I noticed that since version 17, when the connection drops or the session is closed by the user clicking on the X, without logging off, when trying to reconnect, the client just crashes after entering the password.

    This has happened both on Ubuntu LTS 18.04 and 20.04, as well as on 20.11 and 21.04

    The main reason is the error below:
    appserverclient: tpp.c:82: __pthread_tpp_change_priority: Assertion "new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)" failed.

    Researching about the error, I saw that, tpp.c:82: __pthread_tpp_change_priority: Assertion is a known problem and solved:
    https://sourceware.org/ml/libc-help/2008-05/msg00071.html
    in brief, the problem is caused by repeated locking of a fast mutex, and solved by using a recursive mutex, and the default pthread_mutex_t is not recursive.

    Here, the standard output (with addresses and names anonymized):
    Code:
    /opt/2X/Client/bin/appserverclient -g 1152x864 -m MS -d domain -l pt -u sername --enable-adaptive -T hostname -e 0x7F -K remote -s hostname.domain.fqdn:3389
    X Error: BadValue (integer parameter out of range for operation) 2
      Major opcode: 12 (X_ConfigureWindow)
      Resource id:  0x0
    [D 02/00000007/T2BEED880/P2C7C8] 01-07-21 12:02:05 - RDP desktop updated to [1152, 838] due to RDP limits.
    [D 02/00000009/T2BEED880/P2C7C8] 01-07-21 12:02:05 - Start the app event loop
    [D 02/00000007/T1E447640/P2C7C8] 01-07-21 12:02:06 - RDP socket is NOT connected.
    [D 02/00000007/T1E447640/P2C7C8] 01-07-21 12:02:06 - Reconnect RDP socket, server [hostname.domain.fqdn], port [3389]
    [I 00/00000080/T1E447640/P2C7C8] 01-07-21 12:02:06 - OpenSSL FIPS mode is disabled.
    Connecting to *.*.*.59
    TCP(v4) Socket Connected to hostname.domain.fqdn:3389 handle 0x1e
    Connection to hostname.domain.fqdn:3389 was successful
    [D 02/00000007/T1E447640/P2C7C8] 01-07-21 12:02:06 - RDP socket is connected.
    [D 02/00000007/T1E447640/P2C7C8] 01-07-21 12:02:06 - Start RDP client.
    [I 00/00000080/T1E447640/P2C7C8] 01-07-21 12:02:06 - OpenSSL FIPS mode is disabled.
    Open certificate list file error!
    [RdpUdp] Created UDP(v4) 0.0.0.0:54707 handle 0x1f
    [D 02/00000007/T1E447640/P2C7C8] 01-07-21 12:02:09 - Reconnect RDP socket, server [*.*.*.66], port [3389]
    Try close socket, handle 0x1e
    [I 00/00000080/T1E447640/P2C7C8] 01-07-21 12:02:09 - OpenSSL FIPS mode is disabled.
    Connecting to *.*.*.66
    TCP(v4) Socket Connected to *.*.*.66:3389 handle 0x1e
    Connection to *.*.*.66:3389 was successful
    [RdpUdp] Created UDP(v4) 0.0.0.0:34991 handle 0x20
    appserverclient: tpp.c:82: __pthread_tpp_change_priority: Assertion "new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)" failed.
    Aborted (core dumped)
    
    Here from coredump e gdb:
    Code:
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    Core was generated by `/opt/2X/Client/bin/appserverclient -g 1152x864 -m MS -d domain -l pt -u username -'.
    Program terminated with signal SIGABRT, Aborted.
    [Current thread is 1 (Thread 0x7f6208ff9640 (LWP 179796))]
    (gdb) t 1
    [Switching to thread 1 (Thread 0x7f6208ff9640 (LWP 179796))]
    #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
    49      in ../sysdeps/unix/sysv/linux/raise.c
    (gdb) bt
    #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
    #1  0x00007f6232d1e864 in __GI_abort () at abort.c:79
    #2  0x00007f6232d1e749 in __assert_fail_base (fmt=0x7f622f2a4621 "%s%s%s:%u: %s%sAssertion "%s" failed.\n%n",
        assertion=0x7f62335181f0 "new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)", file=0x7f62335181e4 "tpp.c", line=82,
        function=<optimized out>) at assert.c:92
    #3  0x00007f6232d303d6 in __GI___assert_fail (
        assertion=assertion@entry=0x7f62335181f0 "new_prio == -1 || (new_prio >= fifo_min_prio && new_prio <= fifo_max_prio)",
        file=file@entry=0x7f62335181e4 "tpp.c", line=line@entry=82,
        function=function@entry=0x7f62335182a0 <__PRETTY_FUNCTION__.0> "__pthread_tpp_change_priority") at assert.c:101
    #4  0x00007f6233514e89 in __pthread_tpp_change_priority (previous_prio=previous_prio@entry=-1, new_prio=new_prio@entry=0) at tpp.c:82
    #5  0x00007f623350b0b5 in __pthread_mutex_lock_full (mutex=0x7f620c0077c0) at ../nptl/pthread_mutex_lock.c:541
    #6  0x000000000052bbe5 in ?? ()
    #7  0x000000000055907a in ?? ()
    #8  0x00000000005599df in ?? ()
    #9  0x0000000000559cb8 in ?? ()
    #10 0x00000000005ceafd in ?? ()
    #11 0x0000000000604ef0 in ?? ()
    #12 0x00000000005bca3f in ?? ()
    #13 0x000000000053aa6a in ?? ()
    #14 0x00007f6233509450 in start_thread (arg=0x7f6208ff9640) at pthread_create.c:473
    #15 0x00007f6232e0fd53 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    (gdb)
    
    Thank you
     
  2. AndreyOliveira

    AndreyOliveira Bit poster

    Messages:
    6
    Needless to say, it doesn't always happen, but it is frequent, something 1 in 5.
     

Share This Page