]>
Commit | Line | Data |
---|---|---|
56654046 JR |
1 | per https://bugzilla.redhat.com/show_bug.cgi?id=796969#c23 |
2 | The process that executes kdm/backend/session.c:manageSession() is the leader | |
3 | process of the logind session. | |
4 | ||
5 | manageSession() calls: | |
6 | ||
7 | blockTerm(); | |
8 | clientExited(); | |
9 | unblockTerm(); | |
10 | ||
11 | where clientExited() ends the PAM session. | |
12 | With the current systemd-logind, ending the PAM session will cause the leader | |
13 | process to be delivered SIGHUP and SIGTERM. The process will die and the | |
14 | remainder of manageSession() will not be executed. | |
15 | ||
16 | Interestingly, at the end of the function there's a call to sessionExit(), | |
17 | which calls clientExited() again. | |
18 | ||
19 | Removing the three lines quoted above makes reboot from KDE work again. I | |
20 | haven't noticed any bad effects. | |
21 | ||
22 | diff -up kde-workspace-4.8.0/kdm/backend/session.c.bz796969 kde-workspace-4.8.0/kdm/backend/session.c | |
23 | --- kde-workspace-4.8.0/kdm/backend/session.c.bz796969 2012-01-18 14:08:40.000000000 -0600 | |
24 | +++ kde-workspace-4.8.0/kdm/backend/session.c 2012-02-28 07:17:16.270219932 -0600 | |
25 | @@ -662,9 +662,9 @@ manageSession(void) | |
26 | sessionExit(EX_AL_RESERVER_DPY); | |
27 | } | |
28 | ||
29 | - blockTerm(); | |
30 | - clientExited(); | |
31 | - unblockTerm(); | |
32 | + /* blockTerm(); */ | |
33 | + /* clientExited(); */ | |
34 | + /* unblockTerm(); */ | |
35 | ||
36 | gSet(&mstrtalk); | |
37 | gSendInt(D_UnUser); |