Package: directvnc
Version: 0.7.8-1
Severity: normal

My remote connection died hard, and rebooted.  When it came back 
up, I discovered my directvnc display was still stuck on the last 
image prior to the connection dying.  This display didn't time out 
and die.  strace revealed an endless non-throttled loop of:


[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0
[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0
[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0
[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0
[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0
[pid  2643] read(4, 0xaaaad972c430, 8192) = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  2643] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=10000000}, 
NULL) = 0

lsof shows this:

: 44306,6; sudo lsof -p 2643
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
directvnc 2643 root  cwd    DIR               0,25     4096     2 / 
(192.168.1.3:/piroot)
directvnc 2643 root  rtd    DIR               0,25     4096     2 / 
(192.168.1.3:/piroot)
directvnc 2643 root  txt    REG               0,25    52192 28553 
/usr/bin/directvnc (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    26640 28498 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.so
 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    14352 28495 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.so 
(192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    51416 28517 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/wm/libdirectfbwm_default.so 
(192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    14352 28497 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.so 
(192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    14376 28502 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.so 
(192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    59912 28516 
/usr/lib/aarch64-linux-gnu/directfb-1.7-7/systems/libdirectfb_fbdev.so 
(192.168.1.3:/piroot)
directvnc 2643 root  mem    CHR               29,0            531 /dev/fb0
directvnc 2643 root  mem    REG               0,25   591960 40994 
/usr/lib/aarch64-linux-gnu/libm.so.6 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25   133448  1915 
/usr/lib/aarch64-linux-gnu/libgcc_s.so.1 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25  2174296  1926 
/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    67528 40993 
/usr/lib/aarch64-linux-gnu/libdl.so.2 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    63536 28520 
/usr/lib/aarch64-linux-gnu/libfusion-1.7.so.7.0.0 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25   158184 28518 
/usr/lib/aarch64-linux-gnu/libdirect-1.7.so.7.0.0 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25  1651408 40991 
/usr/lib/aarch64-linux-gnu/libc.so.6 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25   133520  6848 
/usr/lib/aarch64-linux-gnu/libz.so.1.2.13 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25   395264 28542 
/usr/lib/aarch64-linux-gnu/libjpeg.so.62.3.0 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25    67528 41002 
/usr/lib/aarch64-linux-gnu/libpthread.so.0 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25  1297056 28519 
/usr/lib/aarch64-linux-gnu/libdirectfb-1.7.so.7.0.0 (192.168.1.3:/piroot)
directvnc 2643 root  mem    REG               0,25   202912 40988 
/usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 (192.168.1.3:/piroot)
directvnc 2643 root    0r   CHR                1,3      0t0     4 /dev/null
directvnc 2643 root    1u  unix 0x00000000947241ed      0t0 19701 type=STREAM 
(CONNECTED)
directvnc 2643 root    2u  unix 0x00000000947241ed      0t0 19701 type=STREAM 
(CONNECTED)
directvnc 2643 root    3u  unix 0x00000000947241ed      0t0 19701 type=STREAM 
(CONNECTED)
directvnc 2643 root    4u  IPv4              34005      0t0   TCP 
pi.rather.puzzling.org:43508->met.rather.puzzling.org:5900 (ESTABLISHED)
directvnc 2643 root    5u   CHR               29,0      0t0   531 /dev/fb0
directvnc 2643 root    6r   CHR                4,0      0t0    13 /dev/tty0
directvnc 2643 root    7u   CHR                4,7      0t0    26 /dev/tty7
directvnc 2643 root    8u   CHR              13,64      0t0   527 
/dev/input/event0
directvnc 2643 root    9r  FIFO               0,12      0t0 34013 pipe
directvnc 2643 root   10w  FIFO               0,12      0t0 34013 pipe
directvnc 2643 root   11r  FIFO               0,12      0t0 34014 pipe
directvnc 2643 root   12w  FIFO               0,12      0t0 34014 pipe
directvnc 2643 root   13u  unix 0x00000000f8226a4d      0t0 34015 
@/org/kernel/udev/monitor type=DGRAM (UNCONNECTED)
directvnc 2643 root   14u   CHR                4,7      0t0    26 /dev/tty7
directvnc 2643 root   15u   CHR               10,1      0t0    97 /dev/psaux
directvnc 2643 root   16u   CHR              13,63      0t0    96 
/dev/input/mice


met, the remote connection, has been up for 31 minutes at this 
time, so it really seems like something is not tearing down the 
connection.  There is a standard iptables firewall between pi 
(client) and met (server):

-A veth135i0-IN -s 192.168.1.28/32 -p tcp -m tcp --dport 5900 -j ACCEPT

Given TCP can remain established for days without packets being 
exchanged, it is my inclination to think that directvnc is at 
fault for not establishing the valilidity of the connection 
before attempting to read from it?



-- System Information:
Debian Release: 12.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: arm64 (aarch64)

Kernel: Linux 6.1.0-25-arm64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_CRAP
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages directvnc depends on:
ii  libc6              2.36-9+deb12u8
ii  libdirectfb-1.7-7  1.7.7-11
ii  libjpeg62-turbo    1:2.1.5-2
ii  zlib1g             1:1.2.13.dfsg-1

Versions of packages directvnc recommends:
ii  x11proto-core-dev                 2022.1-1
ii  x11proto-dev [x11proto-core-dev]  2022.1-1

directvnc suggests no packages.

-- no debconf information

Reply via email to