Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sluggish performance and debug messages from x11vnc #220

Closed
jmechnich opened this issue Jan 29, 2023 · 7 comments
Closed

Sluggish performance and debug messages from x11vnc #220

jmechnich opened this issue Jan 29, 2023 · 7 comments
Labels

Comments

@jmechnich
Copy link

jmechnich commented Jan 29, 2023

In Debian 11 testing as well as in Debian 10 since a recent update to libvncserver, x11vnc performance is quite bad when accessing a running X session via ssh tunnel using different VNC viewers (i.e. ssvncviewer on Linux, vnc-viewer/RealVNC on macOS).

The terminal running the ssh session shows repeated output lines from x11vnc, such as:

The VNC desktop is:      localhost:0
*** fb_push ublen NOT ZERO: 759582801
*** fb_push ublen NOT ZERO: 759582801
(...)

Those messages can be triggered for example by moving the mouse around the VNC screen.

From the recent appearance of this bug in Debian 10, I was able to attribute the bug to this change in libvncserver:
https://github.com/LibVNC/libvncserver/blame/f45672cdc9b749e100be2463b1a04f3a9fc0aa26/rfb/rfb.h#L570

UPDATE_BUF_SIZE has been changed from 30000 to 32768. This macro definition is used in x11vnc as well, more specifically in misc/turbovnc/tight.c.

Changing the value back to 30000 and recompiling fixes the problem.

The triggered messages are printed out here.

It would be great if someone with a deeper knowledge of x11vnc and associated protocols could comment as I am not certain if things are broken here or maybe even inside the viewer code.

References:

Edit:
Apparently this problem is caused by something else and can be fixed by simply recompiling x11vnc locally.

@jmechnich jmechnich added the bug label Jan 29, 2023
@SunRain
Copy link

SunRain commented Jan 30, 2023

UPDATE: This issuse (the ** fb_push ublen NOT ZERO log in systemd) appears in ArchLinux x11vnc-1:0.9.16-5-x86_64. After I update with x11vnc 1:0.9.16.r12.g97d632c-1 built from aur it dispeared.

In Debian 11 testing as well as in Debian 10 since a recent update to libvncserver, x11vnc performance is quite bad when accessing a running X session via ssh tunnel using different VNC viewers (i.e. ssvncviewer on Linux, vnc-viewer/RealVNC on macOS).

The terminal running the ssh session shows repeated output lines from x11vnc, such as:

The VNC desktop is:      localhost:0
*** fb_push ublen NOT ZERO: 759582801
*** fb_push ublen NOT ZERO: 759582801
(...)

Those messages can be triggered for example by moving the mouse around the VNC screen.

From the recent appearance of this bug in Debian 10, I was able to attribute the bug to this change in libvncserver: https://github.com/LibVNC/libvncserver/blame/f45672cdc9b749e100be2463b1a04f3a9fc0aa26/rfb/rfb.h#L570

UPDATE_BUF_SIZE has been changed from 30000 to 32768. This macro definition is used in x11vnc as well, more specifically in misc/turbovnc/tight.c.

Changing the value back to 30000 and recompiling fixes the problem.

The triggered messages are printed out here.

It would be great if someone with a deeper knowledge of x11vnc and associated protocols could comment as I am not certain if things are broken here or maybe even inside the viewer code.

References:

@venoom27
Copy link

I am also having this issue with Arch x11vnc-1:0.9.16-5-x86_64 since I updated.

@jmechnich
Copy link
Author

UPDATE: This issuse (the ** fb_push ublen NOT ZERO log in systemd) appears in ArchLinux x11vnc-1:0.9.16-5-x86_64. After I update with x11vnc 1:0.9.16.r12.g97d632c-1 built from aur it dispeared.

...

Great to hear that. Could you investigate what fixed the problem in your case? Is there a specific patch applied to x11vnc or one of its dependencies in Arch AUR?

@svenssonaxel
Copy link

Just in case it helps, I'm often getting negative numbers in this error message:

*** fb_push ublen NOT ZERO: -1028847095
*** fb_push ublen NOT ZERO: -1028847095
*** fb_push ublen NOT ZERO: -1028847095
*** fb_push ublen NOT ZERO: -1028847095

@venoom27
Copy link

By building the aur version x11vnc-git 1:0.9.16.r12 it fixed the issue. Thanks

@SunRain
Copy link

SunRain commented Feb 1, 2023

See this, but this thread posted at 2013-04-03

https://sourceforge.net/p/libvncserver/mailman/libvncserver-common/thread/20130403122626.0e393c65%40chronoschnitte/

https://aur.archlinux.org/packages/x11vnc-git

And the x11vnc aur package in archlinux still used libjpeg-turbo, and libjpeg-turbo(version 2.1.4-2) contains libjpeg, here's the log

ldd /usr/bin/x11vnc
linux-vdso.so.1 (0x00007ffd489f1000)
libvncserver.so.1 => /usr/lib/libvncserver.so.1 (0x00007f2cbf14b000)
libvncclient.so.1 => /usr/lib/libvncclient.so.1 (0x00007f2cbf11e000)
libssl.so.3 => /usr/lib/libssl.so.3 (0x00007f2cbf07e000)
libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007f2cbec00000)
libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x00007f2cbf04c000)
libXtst.so.6 => /usr/lib/libXtst.so.6 (0x00007f2cbf5ea000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f2cbebeb000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f2cbf5e3000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f2cbebde000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f2cbebd6000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f2cbebd1000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007f2cbebcc000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f2cbebc0000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f2cbea7d000)
libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0x00007f2cbea6f000)
libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0x00007f2cbea5b000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f2cbea47000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f2cbe923000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f2cbe73a000)
libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007f2cbe65e000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f2cbe644000)
liblzo2.so.2 => /usr/lib/liblzo2.so.2 (0x00007f2cbe623000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007f2cbe5a0000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f2cbe567000)
libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007f2cbe41d000)
libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x00007f2cbe200000)
libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x00007f2cbe1e1000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f2cbe410000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f2cbe1b6000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f2cbe409000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f2cbe165000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f2cbe404000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f2cbe07d000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f2cbe02e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f2cbdf5f000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f2cbdf4e000)
libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007f2cbdf49000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f2cbde9c000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f2cbf5f4000)
libcap.so.2 => /usr/lib/libcap.so.2 (0x00007f2cbde90000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f2cbde5d000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f2cbddb5000)
liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007f2cbdd91000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f2cbdd71000)
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007f2cbdd4b000)
libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x00007f2cbdc18000)
libbrotlienc.so.1 => /usr/lib/libbrotlienc.so.1 (0x00007f2cbdb74000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007f2cbdb64000)
libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007f2cbdb42000)
libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007f2cbd988000)
libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x00007f2cbd971000)
libnettle.so.8 => /usr/lib/libnettle.so.8 (0x00007f2cbd91d000)
libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x00007f2cbd8d4000)
libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007f2cbd82f000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f2cbd82a000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f2cbd822000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f2cbd7f7000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f2cbd7e4000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007f2cbd6f9000)
libffi.so.8 => /usr/lib/libffi.so.8 (0x00007f2cbd6ee000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007f2cbd6cb000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007f2cbd6a9000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f2cbd56a000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007f2cbd4cd000)

@jmechnich
Copy link
Author

jmechnich commented Feb 2, 2023

Hrmm...interesting. It turns out that simply recompiling the package locally fixed the problem for me as well (on Debian 11), without removing the patch mentioned above.

I have no idea what is going on here...but it is unlikely to be an issue with the x11vnc code, so I am going to close this. Thanks for the input!

Edit: in Debian 11, this has been fixed in x11vnc 0.9.16-9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants