opened
sblive
username_0
using freerdp from git on gentoo, kernel 4.15.16, everything up to date

top part of image gets corrupted (stale/old data visible), e.g. when moving windows around etc..
last build from 2018-04-04 13:12 works OK, so it must be some of patches of the last days

thanks!
image corruption in upper part due to change after 2018-04-04
issue
created
bmiklautz
username_1
@username_0 The error indicates that you receive invalid packages. This happens for windows 7 and 8.1?
Would you please attach a xfreerdp /buildconfig?
comment
created
sblive
username_0
Thanks for your reply!
Yes, I tested by connecting to ~5 completely different machines, 4 of which were Win8.1 and one was Win7.

buildconfig from broken git build

This is FreeRDP version 2.0.0-dev2 (62f540812)
Build configuration: BUILD_TESTING=no BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE 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=yes WITH_CCACHE=OFF WITH_CHANNELS=ON WITH_CLIENT=yes WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=no WITH_DEBUG_ALL=no 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_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_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FFMPEG=yes WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=no WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=yes WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=yes WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=no WITH_MBEDTLS=OFF WITH_NEON=no WITH_OPENH264=no WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=no WITH_PROFILER=OFF WITH_PULSE=no WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_LEAK=OFF WITH_SANITIZE_LEAK_AVAILABLE=1 WITH_SERVER=no WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SSE2=ON WITH_THIRD_PARTY=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=no WITH_X11=yes WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=yes WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=yes WITH_ZLIB=ON
Build type:          Gentoo
CFLAGS:              -march=skylake -mtune=skylake -fdiagnostics-color=always -O3 -pipe --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mno-fma4 -mno-xop -mno-sgx -mno-tbm -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mfsgsbase -mrdseed -mprfchw -mfxsr -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-fma -mno-bmi -mno-bmi2 -mno-avx -mno-avx2 -mno-f16c -mno-adx -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g
Compiler:            GNU, 7.3.0
Target architecture: x64
comment
created
bmiklautz
username_1
@username_0 tested with the same commit as you did against windows 7 (also same parameters) and can't reproduce this issue.
comment
created
sblive
username_0
by trying all the switches I narrowed it down to /async-update.
as soon as I remove it, it works again (i.e. no image corruption and no packet errors)
we have been using the above switches for years now and as I said it worked with the last build from 2018-04-04.
I don't know why you cannot reproduce it, I switched between versions and it's consistently broken for many different users, using a variety of machines, OS and even at home (this is actually my vacation week ;)) I can reproduce it connecting to my private machines, whiche are completely different from our work machines.
comment
created
sblive
username_0
I tried to run with WLOG_LEVEL=DEBUG, but it produces a lot of output and I couldn't find the errors anymore, but now the image is usually corrupted from the start ("welcome" never disappears, until you blindly try to move windows).
So I added |grep ERROR -B100, and I only get this:

````
[17:12:41:356] [24446:24457] [ERROR][com.freerdp.codec] - rfx_process_message: invalid codecId 0x00
[17:12:43:021] [24446:24457] [ERROR][com.freerdp.codec] - rfx_process_message_region: invalid region type 0x0000
[17:12:43:021] [24446:24457] [ERROR][com.freerdp.codec] - rfx_process_message: packet too small for blocklen=3401646096
[17:12:57:363] [24446:24457] [ERROR][com.freerdp.codec] - zero blockLen
[17:12:57:363] [24446:24457] [ERROR][com.freerdp.codec] - zero blockLen
[17:12:57:363] [24446:24457] [ERROR][com.freerdp.codec] - zero blockLen
[17:12:57:363] [24446:24457] [ERROR][com.freerdp.codec] - zero blockLen
````
comment
created
akallabeth
username_2
Could you try with #4518, that should fix a lot of issues with `async-update`
comment
created
akallabeth
username_2
@username_0 sorry, #4550 which is referenced is the pull, #4518 is just the corresponding issue.
comment
created
sblive
username_0
#4550 is this issue and I do not see any patch either.
But I'm sorry to say I don't understand "which is referenced is [in?] the pull" either :(
I'm used to SVN mostly, I don't really have much git experience besides pulling...
comment
created
sblive
username_0
OK, so #4530 it is ;)
I'm unable to mod the gentoo ebuild to checkout 64c739d09002ed638c34fc425af519b40e401246
According to https://devmanual.gentoo.org/eclass-reference/git-r3.eclass/index.html Gentoo I tried

    freerdp_LIVE_BRANCH="order_refactor" emerge freerdp -j1 -Ob

(fails because there is no such branch in https://github.com/FreeRDP/FreeRDP.git)

and

    freerdp_LIVE_COMMIT="64c739d09002ed638c34fc425af519b40e401246" emerge freerdp -j1 -Ob

(fails because of object IDs not found)

How can I find an https/git repo URL for username_2:order_refactor to use instead of https://github.com/FreeRDP/FreeRDP.git? Again, sorry for not knowing git enough.
comment
created
akallabeth
username_2
@username_0 Either read about checking out [pull requests](https://help.github.com/articles/checking-out-pull-requests-locally/) or you clone (or download the zip) from my [repo](https://github.com/username_2/FreeRDP.git)
comment
created
sblive
username_0
@username_2 thanks, I now managed to mod the ebuild to use the order_refactor branch from your repo. I can confirm that this branch works with the same settings (i.e. incl. async-update) and without corruption like all the versions before around 2018-04-05 did. Latest git fc6780a8650ff3932c50f55181c3995be1fa92ad is still broken.
comment
created
akallabeth
username_2
@username_0 I'm really impressed someone was brave enough to use the `async` options actually.
They are quite broken (and only starting to work reliably after some refactoring)
The commits you reference have actually nothing to do with `async-update` but I can imaging you experienced issues (or lack thereof) as the bugs are `non deterministic` (that is the really great thing about this async stuff)
comment
created
sblive
username_0
@username_2 Glad, you're impressed ;)
Many examples use it and as I said it has been used daily here by many users for at least two years.
Maybe I'm understanding "non-deterministic" differently (non-native speaker), but shouldn't problems have happened as well over the 100+ versions we used during that time? We basically used almost all git versions (at least 3-5 pulls per week). It is 100% deterministicly broken for us in 0af63d4 and newer, emitting IMHO impossible blocklen values (if those are bytes) and I thought 0af63d4 changed some stuff regarding that.
So will the order_refactoring be merged any time soon?
From your reply it appears that async-update is low-prio and we are suppposed to not use it (currently we reverted to 7f6103e where it works)
comment
created
akallabeth
username_2
@username_0 Problem is that the issue has many variables that need to be met to expose that behaviour. While it may very well be hidden in your deployment, the issue is still there.
I'm hoping to get this to the next rc (or 2.0) but it is up to the other devs to review and merge.
Anyway, any specific reason you `need` this option?
comment
created
sblive
username_0
@username_2 I see, thanks. I don't remember the reason, but I'm sure there was one for adding it a few years ago (months of testing/evaluation before production), because I remember trying different switches for hours. Apparently it's not really necessary anymore.
What is it supposed to do anyway? FreeRDP feature to draw in background (async) while RDP stream continues or is it something RDP protocol specific?
comment
closed
akallabeth
username_2
issue