Description of problem:
The customer was set up VNC screens via xinetd to reference the following knowledge.
After updating from RHEL6.7 to 6.8, it came to log out forcibly from the desktop on VNC.
Version-Release number of selected component (if applicable):
- Red Hat Enterprise Linux 6.8
- Desktop Environment(GNOME/KDE)
Steps to Reproduce:
1. install packages
# yum install xinetd tigervnc-server
2. create a user for VNC
# useradd vncuser
# sudo -u vncuser vncpasswd
3. Edit a configuration file
-- /etc/sysconfig/desktop --
-- /etc/xinetd.d/vnc-personal --
disable = no
protocol = tcp
socket_type = stream
type = UNLISTED
port = 5904
wait = yes
user = vncuser
flags = IPv4
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 800x600 -depth 24 -PasswordFile /home/vncuser/.vnc/passwd
log_on_failure += USERID
cps = 50 10
instances = 50
per_source - 10
4. activate desktop and xinetd service
# init 5
# service xinetd start
# chkconfig vnc-personal on
For details, please refer to https://access.redhat.com/solutions/2516.
5. Connect port#5904 with VNC client from other host.
6. On VNC screen, log in to desktop as user and wait for a while.
log out forcibly from the desktop when the wait a little.
continue to log in.
- It occurs regardless of the kind of desktop such as GNOME and KDE.
- gdm seems to finish without permission.
This is probably the same issue as bug 1344137, and appears to be related to keepalive packets. Note that downgrading to tigervnc-server 1.1.0-16.el6 (which was complied against the older xorg-x11-server-source 1.15.0-12.el6 package; note that the keepalive code was updated in xorg-x11-server-source 1.17.4-5.el6) works around the problem.
It looks to me as though the underlying problem might be that the SessionRunning flag in the keepalive packets is being set to 0 instead of 1; it might be the case that the older xorg-x11-server-source package didn't trigger the bug because it was not processing the keepalives correctly.