Freerdp: remoteapp with dialog is disconnecting when it loses focus

Created on 23 Jun 2020  路  12Comments  路  Source: FreeRDP/FreeRDP

Describe the bug
When I open internet options dialog from internet explorer and do ALT + TAB, remoteapp exits unexpectedly.

To Reproduce
Steps to reproduce the behavior:

  1. Launch remoteapp
  2. Right click and select Properties
  3. Press ALT+TAB
  4. See error:

07:52:38:085] [11122:11132] [WARN][com.freerdp.core.orders] - Invalid bmf 129
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.update] - [0x01] PatBlt - update_read_dstblt_order() failed
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.update] - order flags 0d failed
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.fastpath] - Fastpath update Orders [0] failed, status 0
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update() - -1
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update_data() fail
[07:52:38:085] [11122:11132] [DEBUG][com.freerdp.core.rdp] - rdp_recv_callback: CONNECTION_STATE_ACTIVE - rdp_recv_pdu() - -3
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -3
[07:52:38:085] [11122:11132] [DEBUG][com.freerdp.core.rdp] - transport_check_fds() - -1
[07:52:38:085] [11122:11132] [DEBUG][com.freerdp.core] - rdp_check_fds() - -1
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.core] - freerdp_check_fds() failed - 0
[07:52:38:085] [11122:11132] [INFO][com.freerdp.client.common] - Network disconnect!
[07:52:38:085] [11122:11132] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor

Expected behavior
Continue operation, don't crash.

Application details

  • This is FreeRDP version 3.0.0-dev (d31a98336)
  • /u:test /app:"||iexplore" /app-cmd:"https://google.com" /title:"Test" /d:test.test /smartcard /p:"test" /v:localhost:3389 /size:100% /log-level:TRACE /gdi:hw -offscreen-cache -bitmap-cache /relax-order-checks /cert-ignore
  • Output of xfreerdp /buildconfig
    This is FreeRDP version 3.0.0-dev (d31a98336)
    Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=OFF WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=OFF WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=OFF WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=OFF WITH_ZLIB=ON
    Build type: Debug
    CFLAGS: -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -DWINPR_DLL
    Compiler: GNU, 8.3.0
    Target architecture: x64
  • OS version connecting to (server side)
    Windows Server 2008 R2

Environment (please complete the following information):

  • OS: Debian
  • Version/Distribution: 10 with XFCE
  • Architecture: amd64
fixed-waiting-test

Most helpful comment

Hi there, I have trouble connecting to Windows Server 2008 with xfreerdp 2.1.2
Downgrading to 2.1.1 fixed the issues for me.

All 12 comments

@FutureKidBuu ok, you just found a bug in a rarely used part of the code (you seem to use some very specific flags)
Fixed with #6300

Just a note: Never ever use /relax-order-checks with a microsoft RDP server, that flag is reserved for older xrdp servers that do not properly announce what they support.
This really impacts security in a very negative way

Thanks for the warning!

Hi there, I have trouble connecting to Windows Server 2008 with xfreerdp 2.1.2
Downgrading to 2.1.1 fixed the issues for me.

I have the same errors whenever I open Outlook on a remote server in 2.1.2. I also use the /cert-ignore flag. Downgrading to 2.1.1 fixed it for me.

I'm having the same issue with 2.1.2. Any idea when the patch will make it to the Kubuntu 20.04 repos?

Same as many others - navigated all the different issues posted about sessions repeatedly disconnecting after FreeRDP 2.1.2 update and this seems to be the "master". Still haven't gotten a clear explanation from the Mint and Ubuntu forums on how to definitively determine when a fix/commit gets installed (unless specifically reflected in the "About" menu dialog).

I'm "Ignoring" all FreeRDP2 updates for now (there have already been 3 subsequent updates) since I can't afford to be without a functioning Remmina. Please post the "New Version" string that will confirm #6298 is included and safe to install.

2.2.0 will contain the fix and will be out soon.

Appears the 2.2.0 just arrived in the update repos (at least for my machine):
Screenshot from 2020-07-30 08-35-14
At least, I'm assuming this is the 2.2.0 version containing the "disconnect" fix?

I just wanted to comment, this also affected me on ArchLinux (using Remmina as the front-end to freeRDP). Using 2.1.2 caused crashing very frequently/seemingly randomly, when connecting to a remote PC running Windows 7 and Outlook. Note, it dit not affect my connections to Windows 10. But back to W7 and Outlook, almost any time a dialog opened or Outlook interacted with me, it would disconnect my RDC session, and and I could not reconnect without rebooting the remote PC (the session would hang, so I could not reconnect locally or remotely). I reverted back to v2.1.1 on Arch, and the problem went away. Thanks for working on this one, it is a nasty one...

I know this is closed, and I haven't had time to search for new issues in GitHub, but ever since installing the FreeRDP 2.2.0 update (shown above) along with the other associated packages, including Remmina, my Remote Desktop sessions have been locking up intermittently a couple of times a day every day since installation. I may either regress the updates again, or use the VNC protocol until the root cause really gets fixed.

@REMjn832 The disconnects with windows 7 have been fixed with 2.2.0. Some users reported success with disabling glyph cache on windows 7 as a workaround.
@dannn-o what are you talking about? If you can provide a more specific description and (hopefully log files) to address this (best in a new issue, as this one is resolved)?

As I mentioned, I'm limited on time available for debugging at the moment (I have several other GitHub code defect issues open as well), but will pursue a new issue if/when I have time. All I can say is the lockup issues started simultaneously with the FreeRDP update, and I haven't had any recurrence since changing back to the VNC protocol in Remmina (again).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kartun83 picture kartun83  路  17Comments

alizafzali picture alizafzali  路  10Comments

yoklmn picture yoklmn  路  11Comments

truekonrads picture truekonrads  路  18Comments

andreesteve picture andreesteve  路  16Comments