Spawned zombie subprocesses not reaped

The child watch source attached to thread context didn't work due to the release of it's main loop and context outside. So we attach the source to the global default main context to make it work and avoid zombies.
This commit is contained in:
Jan Rybar 2018-08-15 16:54:23 +02:00
parent 9ed3759d5b
commit 41ee88b15c
2 changed files with 18 additions and 1 deletions

View File

@ -6,7 +6,7 @@
Summary: An authorization framework
Name: polkit
Version: 0.115
Release: 3%{?dist}
Release: 4%{?dist}
License: LGPLv2+
URL: http://www.freedesktop.org/wiki/Software/polkit
Source0: http://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
@ -16,6 +16,7 @@ Group: System Environment/Libraries
Patch1: polkitagentlistener-freed-server-returned.patch
Patch2: pkttyagent-rescue-target-error-msg.patch
Patch3: bus-conn-msg-ssh.patch
Patch4: spawning-zombie-processes.patch
BuildRequires: gcc-c++
@ -181,6 +182,9 @@ exit 0
%{_libdir}/girepository-1.0/*.typelib
%changelog
* Mon Aug 13 2018 Jan Rybar <jrybar@redhat.com> - 0.115-4
- Leaking zombie processess started by rules
* Fri Jul 20 2018 Jan Rybar <jrybar@redhat.com> - 0.115-3
- Warning raised by polkit when disconnected from ssh
- polkitagentlistener: resource leak - pointer to 'server'

View File

@ -0,0 +1,13 @@
diff -up ./src/polkitbackend/polkitbackendjsauthority.cpp.ori ./src/polkitbackend/polkitbackendjsauthority.cpp
--- ./src/polkitbackend/polkitbackendjsauthority.cpp.ori 2018-04-03 22:57:57.000000000 +0200
+++ ./src/polkitbackend/polkitbackendjsauthority.cpp 2018-08-14 16:47:48.416993302 +0200
@@ -1595,7 +1595,8 @@ utils_spawn_data_free (UtilsSpawnData *d
(GSourceFunc) utils_child_watch_from_release_cb,
source,
(GDestroyNotify) g_source_destroy);
- g_source_attach (source, data->main_context);
+ /* attach source to the global default main context */
+ g_source_attach (source, NULL);
g_source_unref (source);
data->child_pid = 0;
}