[GNOME-ABRT PATCH] Recover from fork errors
Jakub Filak
jfilak at redhat.com
Tue Aug 13 11:16:28 UTC 2013
Closes rhbz#995868
Signed-off-by: Jakub Filak <jfilak at redhat.com>
---
po/POTFILES.in | 1 +
src/gnome_abrt/controller.py.in | 13 ++++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0a3555e..0f30622 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -7,3 +7,4 @@ src/gnome_abrt/oops.glade
src/gnome_abrt/problems.py
src/gnome_abrt/tools.py
src/gnome_abrt/views.py
+src/gnome_abrt/controller.py
diff --git a/src/gnome_abrt/controller.py.in b/src/gnome_abrt/controller.py.in
index 0dad426..969d6a8 100644
--- a/src/gnome_abrt/controller.py.in
+++ b/src/gnome_abrt/controller.py.in
@@ -22,6 +22,7 @@ import traceback
# gnome-abrt
from gnome_abrt import errors
+from gnome_abrt.l10n import _
class Controller(object):
@@ -68,7 +69,17 @@ class Controller(object):
def _run_event_on_problem(self, event, problem):
if problem.assure_ownership():
- if os.fork() == 0:
+ pid = -1
+ try:
+ pid = os.fork()
+ except OSError as ex:
+ logging.debug(traceback.format_exc())
+ logging.error(
+ _("Failed to execute the requested action because of"
+ " an error in new process creation"))
+ return
+
+ if pid == 0:
exctbl = "@libexecdir@/abrt-handle-event"
args = [exctbl, "-e", event, "--", problem.problem_id]
try:
--
1.8.3.1
More information about the Crash-catcher
mailing list