core: print a nicer warning when two units have the same BusName= setting
authorLennart Poettering <lennart@poettering.net>
Fri, 24 Jul 2015 01:50:36 +0000 (03:50 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 24 Jul 2015 01:50:36 +0000 (03:50 +0200)
This should make issues like #609 easier to debug.

src/core/service.c

index 39a2507..b790ec9 100644 (file)
@@ -401,7 +401,6 @@ static int service_add_fd_store_set(Service *s, FDSet *fds) {
                 r = service_add_fd_store(s, fd);
                 if (r < 0)
                         return log_unit_error_errno(UNIT(s), r, "Couldn't add fd to fd store: %m");
-
                 if (r > 0) {
                         log_unit_debug(UNIT(s), "Added fd to fd store.");
                         fd = -1;
@@ -576,8 +575,10 @@ static int service_add_extras(Service *s) {
                         return r;
 
                 r = unit_watch_bus_name(UNIT(s), s->bus_name);
+                if (r == -EEXIST)
+                        return log_unit_error_errno(UNIT(s), r, "Two services allocated for the same bus name %s, refusing operation.", s->bus_name);
                 if (r < 0)
-                        return r;
+                        return log_unit_error_errno(UNIT(s), r, "Cannot watch bus name %s: %m", s->bus_name);
         }
 
         if (UNIT(s)->default_dependencies) {