Package: x2goserver Version: 4.1.0.3 Tags: patch -------- Forwarded Message -------- Subject: [Bug 1754220] New: x2gocleansessions kills user desktop shortly after login (~20 secs) Date: Sat, 21 Sep 2019 22:07:05 +0000 From: bugzilla@redhat.com To: orion@nwra.com https://bugzilla.redhat.com/show_bug.cgi?id=1754220 Bug ID: 1754220 Summary: x2gocleansessions kills user desktop shortly after login (~20 secs) Product: Fedora Version: 30 Status: NEW Component: x2goserver Assignee: orion@nwra.com Reporter: gregory.lee.bartholomew@gmail.com QA Contact: extras-qa@fedoraproject.org CC: orion@nwra.com Target Milestone: --- Classification: Fedora Description of problem: Randomly, user sessions are booted after logging in. Usually a stable connection can be acquired after a few retries. Version-Release number of selected component (if applicable): # rpm -q x2goserver x2goserver-4.1.0.3-3.fc30.x86_64 How reproducible: Randomly Steps to Reproduce: 1. Login and wait 20 to 30 seconds (I was using LXDE and occasionally running "sudo -i" in a terminal, but I don't think that is necessary to trigger the bug). Actual results: Session killed shortly after logging in. Expected results: Session should not be killed. Additional info: To troubleshoot this issue, I did the following: # mkdir /etc/systemd/system/x2gocleansessions.service.d # cat << END > /etc/systemd/system/x2gocleansessions.service.d/override.conf [Service] Type=simple ExecStart= ExecStart=/usr/sbin/x2gocleansessions -d END # systemctl daemon-reload # systemctl restart x2gocleansessions.service After sprinkling /usr/sbin/x2gocleansessions with printf statements and x2gocleansessions.service a few times, I eventually traced the problem down to check_pid() being called with a NULL value for $pid (not sure why; seems to be some sort of race condition). The following patch seems to resolve the issue. --- x2gocleansessions.a 2019-09-21 16:46:53.327948763 -0500 +++ x2gocleansessions.b 2019-09-21 16:46:10.076184475 -0500 @@ -62,7 +62,7 @@ my $pid=shift; my $sess=shift; my $sec=shift; - if ($sec < 30) + if (!$pid || $sec < 30) { return 1; } -- You are receiving this mail because: You are on the CC list for the bug. You are the assignee for the bug.