Bug#290916: tentative patch

Václav Šmilauer Václav Šmilauer , 290916@bugs.debian.org
Thu, 3 Mar 2005 18:39:40 +0100


Coming back after a few days, it happened _twice_ today after 2 weeks of
silence. Log has is saying 

  Mar  3 10:06:17 [gdm] gdm_display_unmanage: Stopping ag202-1.arcig:0 (slave pid: 7420)
  Mar  3 10:06:27 [gdm] whack_old_slave: GOT ANOTHER SIGTERM (or it was 10 secs already), killing slave again

and killing 7420 did help.

One person contacted me by mail directly with the same problem, also
mounting/umounting local media on the thinstations so now I suspect the problem
to be there more definitively. I hope she mails some details to BTS soon, as I
asked her to do.

For the moment, I propose the following patch, some comment upon its possible
side-effects please. Instead of sending SIGTERM repeatedly, send SIGKILL for
the second time. It is not yet tested (not even compiled) but I will report
problems here.

Regards, Vaclav


--- gdm-2.6.0.6/daemon/display.c        2005-03-03 18:01:32.000000000 +0100
+++ gdm-2.6.0.6-orig/daemon/display.c   2004-05-27 03:19:35.000000000 +0200
@@ -208,9 +208,9 @@
                        ve_signal_was_notified (SIGINT) ||
                        ve_signal_was_notified (SIGHUP) ||
                        t + 10 <= time (NULL)) {
-                           gdm_debug ("whack_old_slave: GOT ANOTHER SIGTERM (or it was 10 secs already), killing slave with SIGKILL");
+                           gdm_debug ("whack_old_slave: GOT ANOTHER SIGTERM (or it was 10 secs already), killing slave again");
                            t = time (NULL);
-                           kill (d->slavepid, SIGKILL);
+                           kill (d->slavepid, SIGTERM);
                            goto wait_again;
                    } else if (ret < 0 && errno == EINTR) {
                            goto wait_again;