summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2011-03-26 15:52:50 -0400
committerColin Walters <walters@verbum.org>2011-04-26 14:12:10 -0400
commit1d24cecc41296647b14175779a35c2cdc4d242a7 (patch)
tree7daf4f2185f487dd5fca013cea59d99ad0e13c1b
parent2040f53bd3f2d48a2d33a737110920c112a28ea4 (diff)
downloaddbus-1d24cecc41296647b14175779a35c2cdc4d242a7.tar.gz
activation: Use _dbus_system_log for activation information
Log when we are activating something (and whether it's via systemd) as well as when we fail to activate, and when one succeeds. https://bugs.freedesktop.org/show_bug.cgi?id=35705
-rw-r--r--bus/activation.c68
1 files changed, 60 insertions, 8 deletions
diff --git a/bus/activation.c b/bus/activation.c
index ab6ef51e..3177d023 100644
--- a/bus/activation.c
+++ b/bus/activation.c
@@ -1106,6 +1106,10 @@ bus_activation_service_created (BusActivation *activation,
if (!pending_activation)
return TRUE;
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Successfully activated service '%s'",
+ service_name);
+
link = _dbus_list_get_first_link (&pending_activation->entries);
while (link != NULL)
{
@@ -1400,6 +1404,11 @@ babysitter_watch_callback (DBusWatch *watch,
if (activation_failed)
{
+ bus_context_log (pending_activation->activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activated service '%s' failed: %s",
+ pending_activation->service_name,
+ error.message);
+
/* Destroy all pending activations with the same exec */
_dbus_hash_iter_init (pending_activation->activation->pending_activations,
&iter);
@@ -1462,6 +1471,10 @@ pending_activation_timed_out (void *data)
dbus_set_error (&error, DBUS_ERROR_TIMED_OUT,
"Activation of %s timed out",
pending_activation->service_name);
+ bus_context_log (pending_activation->activation->context,
+ DBUS_SYSTEM_LOG_INFO,
+ "Failed to activate service '%s': timed out",
+ pending_activation->service_name);
pending_activation_failed (pending_activation, &error);
@@ -1674,6 +1687,7 @@ bus_activation_activate_service (BusActivation *activation,
const char *service_name,
DBusError *error)
{
+ DBusError tmp_error;
BusActivationEntry *entry;
BusPendingActivation *pending_activation;
BusPendingActivationEntry *pending_activation_entry;
@@ -1962,18 +1976,34 @@ bus_activation_activate_service (BusActivation *activation,
service = bus_registry_lookup (registry, &service_string);
if (service != NULL)
- /* Wonderful, systemd is connected, let's just send the msg */
- retval = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
- message, error);
+ {
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activating via systemd: service name='%s' unit='%s'",
+ service_name,
+ entry->systemd_service);
+ /* Wonderful, systemd is connected, let's just send the msg */
+ retval = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
+ message, error);
+ }
else
- /* systemd is not around, let's "activate" it. */
- retval = bus_activation_activate_service (activation, connection, activation_transaction, TRUE,
- message, "org.freedesktop.systemd1", error);
+ {
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activating systemd to hand-off: service name='%s' unit='%s'",
+ service_name,
+ entry->systemd_service);
+ /* systemd is not around, let's "activate" it. */
+ retval = bus_activation_activate_service (activation, connection, activation_transaction, TRUE,
+ message, "org.freedesktop.systemd1", error);
+ }
dbus_message_unref (message);
if (!retval)
{
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Failed to activate via systemd: service name='%s' unit='%s'",
+ service_name,
+ entry->systemd_service);
_DBUS_ASSERT_ERROR_IS_SET (error);
_dbus_verbose ("failed to send activation message: %s\n", error->name);
bus_transaction_cancel_and_free (activation_transaction);
@@ -2069,13 +2099,29 @@ bus_activation_activate_service (BusActivation *activation,
}
_dbus_verbose ("Spawning %s ...\n", argv[0]);
+ if (servicehelper != NULL)
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activating service name='%s' (using servicehelper)",
+ service_name);
+ else
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activating service name='%s'",
+ service_name);
+
+ dbus_error_init (&tmp_error);
+
if (!_dbus_spawn_async_with_babysitter (&pending_activation->babysitter, argv,
envp,
NULL, activation,
- error))
+ &tmp_error))
{
_dbus_verbose ("Failed to spawn child\n");
- _DBUS_ASSERT_ERROR_IS_SET (error);
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Failed to activate service %s: %s",
+ service_name,
+ tmp_error.message);
+ _DBUS_ASSERT_ERROR_IS_SET (&tmp_error);
+ dbus_move_error (&tmp_error, error);
dbus_free_string_array (argv);
dbus_free_string_array (envp);
@@ -2166,10 +2212,16 @@ dbus_activation_systemd_failure (BusActivation *activation,
DBUS_TYPE_INVALID))
dbus_set_error(&error, code, str);
+
if (unit)
{
DBusHashIter iter;
+ bus_context_log (activation->context,
+ DBUS_SYSTEM_LOG_INFO, "Activation via systemd failed for unit '%s': %s",
+ unit,
+ str);
+
_dbus_hash_iter_init (activation->pending_activations,
&iter);