sd-bus: add debug logs where we try to connect
When connection to the bus fails it can be mighty hard to figure out what went wrong because we have many different connection mechanisms and we don't log what is happenning.
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include "fd-util.h"
|
||||
#include "namespace-util.h"
|
||||
#include "process-util.h"
|
||||
#include "string-util.h"
|
||||
#include "util.h"
|
||||
|
||||
int bus_container_connect_socket(sd_bus *b) {
|
||||
@@ -24,10 +25,15 @@ int bus_container_connect_socket(sd_bus *b) {
|
||||
assert(b->nspid > 0 || b->machine);
|
||||
|
||||
if (b->nspid <= 0) {
|
||||
log_debug("sd-bus: connecting bus%s%s to machine %s...",
|
||||
b->description ? " " : "", strempty(b->description), b->machine);
|
||||
|
||||
r = container_get_leader(b->machine, &b->nspid);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
} else
|
||||
log_debug("sd-bus: connecting bus%s%s to namespace of PID "PID_FMT"...",
|
||||
b->description ? " " : "", strempty(b->description), b->nspid);
|
||||
|
||||
r = namespace_open(b->nspid, &pidnsfd, &mntnsfd, NULL, &usernsfd, &rootfd);
|
||||
if (r < 0)
|
||||
|
||||
@@ -885,6 +885,13 @@ int bus_socket_connect(sd_bus *b) {
|
||||
assert(b->output_fd < 0);
|
||||
assert(b->sockaddr.sa.sa_family != AF_UNSPEC);
|
||||
|
||||
if (DEBUG_LOGGING) {
|
||||
_cleanup_free_ char *pretty = NULL;
|
||||
(void) sockaddr_pretty(&b->sockaddr.sa, b->sockaddr_size, false, true, &pretty);
|
||||
log_debug("sd-bus: starting bus%s%s by connecting to %s...",
|
||||
b->description ? " " : "", strempty(b->description), strnull(pretty));
|
||||
}
|
||||
|
||||
b->input_fd = socket(b->sockaddr.sa.sa_family, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0);
|
||||
if (b->input_fd < 0)
|
||||
return -errno;
|
||||
@@ -956,6 +963,9 @@ int bus_socket_exec(sd_bus *b) {
|
||||
assert(b->exec_path);
|
||||
assert(b->busexec_pid == 0);
|
||||
|
||||
log_debug("sd-bus: starting bus%s%s with %s...",
|
||||
b->description ? " " : "", strempty(b->description), b->exec_path);
|
||||
|
||||
r = socketpair(AF_UNIX, SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC, 0, s);
|
||||
if (r < 0)
|
||||
return -errno;
|
||||
|
||||
@@ -1155,6 +1155,16 @@ static int bus_start_fd(sd_bus *b) {
|
||||
assert(b->input_fd >= 0);
|
||||
assert(b->output_fd >= 0);
|
||||
|
||||
if (DEBUG_LOGGING) {
|
||||
_cleanup_free_ char *pi = NULL, *po = NULL;
|
||||
(void) fd_get_path(b->input_fd, &pi);
|
||||
(void) fd_get_path(b->output_fd, &po);
|
||||
log_debug("sd-bus: starting bus%s%s on fds %d/%d (%s, %s)...",
|
||||
b->description ? " " : "", strempty(b->description),
|
||||
b->input_fd, b->output_fd,
|
||||
pi ?: "???", po ?: "???");
|
||||
}
|
||||
|
||||
r = fd_nonblock(b->input_fd, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user