Closed tsz8899 closed 3 months ago
Two new situations: Enabling enable-devel-all or enable-devel-logging causes make bug Configure with enable-devel-all or enable-devel-logging can eliminate the fault??
After cloning the latest source code from git 1. When trying to use: ./configure --enable-devel-all or ./configure --enable-devel-logging Must also include --enable-pixman, otherwise make error
./configure --enable-devel-all
make clean all
...
make[3]: Leaving directory '/home/user/src/xrdp/sesman/libsesman'
Making all in sesexec
make[3]: Entering directory '/home/user/src/xrdp/sesman/sesexec'
CCLD xrdp-sesexec
/usr/bin/ld: ../../common/.libs/libcommon.so: undefined reference to `pixman_region_selfcheck'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:486: xrdp-sesexec] Error 1
make[3]: Leaving directory '/home/user/src/xrdp/sesman/sesexec'
make[2]: *** [Makefile:696: all-recursive] Error 1
make[2]: Leaving directory '/home/user/src/xrdp/sesman'
make[1]: *** [Makefile:511: all-recursive] Error 1
make[1]: Leaving directory '/home/user/src/xrdp'
make: *** [Makefile:443: all] Error 2
2. When trying to use ./configure --enable-devel-all or enable-devel-logging + --enable-pixman +any Make is successful --enable-devel will result in a significant performance decrease in video decoding But changing the session screen resolution on the client side rapidly will not cause any anomalies!!
If ignore enable-devel-all or enable-devel-logging keeping other switches, the fault will reappear:
client use /gfx /gfx:avc420 /gfx:avc444 /nsc rapidly changing the session screen resolution or switch full screen with window ,
will cause the server session to crash, the client connection to disconnect.
and normal usage after the client reconnects.
6月 03 10:50:05 temp-PC kernel: traps: xrdp[4131] general protection fault ip:7f33e46cee1d sp:7ffdf797aa70 error:0 in libc-2.28.so[7f33e466c000+13e000]
6月 03 10:50:06 temp-PC xrdp-sesman[4002]: rdpClientConRecv: g_sck_recv failed(returned 0)
6月 03 10:50:06 temp-PC xrdp-sesman[4002]: rdpClientConRecvMsg: error
6月 03 10:50:06 temp-PC xrdp-sesman[4002]: rdpClientConCheck: rdpClientConGotData failed
6月 03 10:50:06 temp-PC xrdp-sesman[4002]: rdpClientConDisconnect:
6月 03 10:50:06 temp-PC xrdp-sesman[4002]: rdpRemoveClientConFromDev: removing clientCon 0x1ecb9b0
6月 03 10:50:06 temp-PC xrdp[4003]: [ERROR] Child 4131 terminated unexpectedly with signal SIGSEGV
6月 03 10:50:06 temp-PC systemd-coredump[6268]: Process 4131 (xrdp) of user 0 dumped core.
Stack trace of thread 4131:
#0 0x00007f33e46cee1d cfree (libc.so.6)
#1 0x000000000040c07d xrdp_enc_data_destructor (xrdp)
#2 0x00007f33e4c448ff call_item_destructor (libcommon.so.0)
#3 0x00007f33e4c449a3 fifo_delete (libcommon.so.0)
#4 0x000000000040dc3f xrdp_encoder_delete (xrdp)
#5 0x000000000041837b process_display_control_monitor_layout_data (xrdp)
#6 0x000000000041b2c2 xrdp_process_main_loop (xrdp)
#7 0x000000000040e587 xrdp_process_run (xrdp)
#8 0x000000000040f63a xrdp_listen_fork (xrdp)
#9 0x0000000000406179 main (xrdp)
#10 0x00007f33e466e1fb __libc_start_main (libc.so.6)
#11 0x00000000004068ca _start (xrdp)
client use /rfx normal
Great work @tsz8899
I'll fix your pixman link error first, then I'll try to reproduce this.
3106 ./configure --enable-devel-all or ./configure --enable-devel-logging
debian 12 make and make install normal
@tsz8899 - check out #3107
I'm about to finish for the day here - it hasn't cleared CI yet.
debian12 xfce
quickly resized session screen size 100 times, 3 times per second. Everything is normal!! The robustness has been greatly improved. I will try multiple usage scenarios again.
@tsz8899 My "torture test" for resizing is twofold:
Using Nexarian's method for testing, everything is working fine.
xrdp version
0.10.8
Detailed xrdp version, build options
Operating system & version
debian 12
Installation method
git clone & make install
Which backend do you use?
xorgxrdp
What desktop environment do you use?
xfce
Environment xrdp running on
vm
What's your client?
xfreerdp wfreerdp
Area(s) with issue?
Graphic glitches, Session manager (sesman), Other
Steps to reproduce
Low-intensity use screen dynamic-resolution sometimes results in crashes.
found a reproducible method: kernel: traps: xrdp[13310] general protection fault ip:7fab1ca41e3a sp:7fffd62f3fd0 error:0 in libc.so.6 xrdp[525]: [ERROR] Child 13048 terminated unexpectedly with signal SIGSEGV
Connect session using freerdp + dynamic-resolution - default is 1024x768 windows.
mouse double-click on the session window to enlarge it. Repeat clicking to reduce the window back to its original size.
Rapidly repeat the process of enlarging and reducing the window 10 to 30 times(mouse clicking >3 times per second), causing the XRDP server to crash.
Possibly related to the video module. Decoding that triggers a crash: freerdp + dynamic-resolution /gfx or /gfx:avc420 /gfx:avc444 /nsc Enlarging and reducing 100 times did not trigger the crash??: freerdp + dynamic-resolution /rfx
--In addition, sometimes dynamic-resolution session window will freeze after being minimized and waiting for several tens of minutes. unknown whether this issue is related to the previous problem?
If needed, please tell me how to conduct further tests.
✔️ Expected Behavior
client use screen dynamic-resolution not cause crash.
❌ Actual Behavior
/rfx normal
/gfx:avc420 /gfx /nsc terminated unexpectedly with signal SIGSEGV
Anything else?
No response