Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 377832 Details for
Bug 545267
gdm-2.28.1-25.fc12+ does not display users: "no seat-id found" in /var/log/gdm/:0-greeter.log
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh90 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
untested patch
fix-dbus-activation.patch (text/plain), 3.41 KB, created by
Ray Strode [halfline]
on 2009-12-12 04:31:17 UTC
(
hide
)
Description:
untested patch
Filename:
MIME Type:
Creator:
Ray Strode [halfline]
Created:
2009-12-12 04:31:17 UTC
Size:
3.41 KB
patch
obsolete
>From 8c7ba1199419db33654fe6a3643414da5f2217ab Mon Sep 17 00:00:00 2001 >From: Ray Strode <rstrode@redhat.com> >Date: Fri, 11 Dec 2009 23:24:16 -0500 >Subject: [PATCH] Don't failure activation if service daemonizes > >A number of activated services daemonize as soon as they are >started. This daemonizing means the process that the bus >daemon is watching exits (potentially) before the daemon child >process registers on the bus, causing the activation code to >think the activation process failed. > >Now, when an activated process exits, we examine the exit code >for failure before immediately assuming an error. >--- > bus/activation.c | 48 ++++++++++++++++++++++++++++++++++-------------- > 1 files changed, 34 insertions(+), 14 deletions(-) > >diff --git a/bus/activation.c b/bus/activation.c >index 1863095..cc528fc 100644 >--- a/bus/activation.c >+++ b/bus/activation.c >@@ -1289,34 +1289,54 @@ babysitter_watch_callback (DBusWatch *watch, > { > DBusError error; > DBusHashIter iter; >- >+ dbus_bool_t activation_failed; >+ > dbus_error_init (&error); > _dbus_babysitter_set_child_exit_error (babysitter, &error); > >- /* refine the error code if we got an exit code */ >+ /* There are two possible reasons the child exited: >+ * 1) A failure of some sort >+ * 2) A success, but the activated process fork()'d and >+ * exited the parent before getting a bus name with the child >+ * (e.g., it called daemon()). >+ * >+ * We assume the activated process will exit with a 0 exit >+ * status in case 2 and choose not to treat that as an error >+ */ > if (dbus_error_has_name (&error, DBUS_ERROR_SPAWN_CHILD_EXITED)) > { > int exit_code = 0; > if (_dbus_babysitter_get_child_exit_status (babysitter, &exit_code)) > { > dbus_error_free (&error); >- handle_activation_exit_error (exit_code, &error); >+ >+ activation_failed = exit_code != 0; >+ >+ if (activation_failed) >+ handle_activation_exit_error (exit_code, &error); > } > } >+ else >+ { >+ activation_failed = TRUE; >+ } > >- /* Destroy all pending activations with the same exec */ >- _dbus_hash_iter_init (pending_activation->activation->pending_activations, >- &iter); >- while (_dbus_hash_iter_next (&iter)) >+ if (activation_failed) > { >- BusPendingActivation *p = _dbus_hash_iter_get_value (&iter); >- >- if (p != pending_activation && strcmp (p->exec, pending_activation->exec) == 0) >- pending_activation_failed (p, &error); >+ /* Destroy all pending activations with the same exec */ >+ _dbus_hash_iter_init (pending_activation->activation->pending_activations, >+ &iter); >+ while (_dbus_hash_iter_next (&iter)) >+ { >+ BusPendingActivation *p = _dbus_hash_iter_get_value (&iter); >+ >+ if (p != pending_activation && strcmp (p->exec, pending_activation->exec) == 0) >+ pending_activation_failed (p, &error); >+ } >+ >+ /* Destroys the pending activation */ >+ pending_activation_failed (pending_activation, &error); > } >- >- /* Destroys the pending activation */ >- pending_activation_failed (pending_activation, &error); > > dbus_error_free (&error); > } >-- >1.6.5.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 545267
:
377622
| 377832