Hello community, here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at 2017-11-16 13:58:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old) and /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server" Thu Nov 16 13:58:39 2017 rev:349 rq:541788 version:1.19.5 Changes: -------- --- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes 2017-10-23 16:36:09.916777437 +0200 +++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2017-11-16 13:58:41.270683671 +0100 @@ -1,0 +2,7 @@ +Tue Nov 14 09:57:04 UTC 2017 - [email protected] + +- u_os-inputthread-Force-unlock-when-stopping-thread.patch + * Prevent dead lock if terminating while on inactive VT. + (bnc#1062977) + +------------------------------------------------------------------- New: ---- u_os-inputthread-Force-unlock-when-stopping-thread.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.RwqBXG/_old 2017-11-16 13:58:42.490639469 +0100 +++ /var/tmp/diff_new_pack.RwqBXG/_new 2017-11-16 13:58:42.494639324 +0100 @@ -206,6 +206,7 @@ Patch210: u_os-connections-Check-for-stale-FDs.patch Patch215: u_Use-better-fallbacks-to-generate-cookies-if-arc4rand.patch +Patch216: u_os-inputthread-Force-unlock-when-stopping-thread.patch Patch1000: n_xserver-optimus-autoconfig-hack.patch @@ -340,6 +341,7 @@ #%patch210 -p1 %patch215 -p1 +%patch216 -p1 ### disabled for now #%patch1000 -p1 ++++++ u_os-inputthread-Force-unlock-when-stopping-thread.patch ++++++ Author: Michal Srb <[email protected]> Subject: os/inputthread: Force unlock when stopping thread. Patch-Mainline: To be upstreamed References: bnc#1062977 The inputthread is kept locked all the time while X server's VT is not active. If the X server is terminated while not active, it will be stuck forever in InputThreadFini waiting for the thread to join, but it wouldn't because it is locked. --- This fixes the X server termination while its VT is not active. I think it should be safe to force unlock it from InputThreadFini - X server is terminating and nothing else should race there, but I am not completely sure. os/inputthread.c | 1 + 1 file changed, 1 insertion(+) diff --git a/os/inputthread.c b/os/inputthread.c index 721e86312..dc4eb9f20 100644 --- a/os/inputthread.c +++ b/os/inputthread.c @@ -497,6 +497,7 @@ InputThreadFini(void) /* Close the pipe to get the input thread to shut down */ close(hotplugPipeWrite); + input_force_unlock(); pthread_join(inputThreadInfo->thread, NULL); xorg_list_for_each_entry_safe(dev, next, &inputThreadInfo->devs, node) { -- 2.12.3
