mirror of
https://github.com/systemd/systemd.git
synced 2026-08-12 12:16:06 +00:00
sd-notify: print a debug message when sd_notify() succeds
… and also when it fails, in the few cases where this wasn't done already.
When I was debugging https://github.com/systemd/systemd/issues/39048, it
was quite confusing that we print copious information about D-Bus messages
and all other steps we're undertaking, but nothing about the sd-notify
messages which are much more important. Add some debug messages for the
cases where we didn't print anything. (The case where $NOTIFY_SOCKET is
not set in left unchanged. The variable is often left unset and we don't
need to spam logs in that trivial case.)
(cherry picked from commit 21eb636aaa)
This commit is contained in:
committed by
Luca Boccassi
parent
87011e12b6
commit
6c3628f1eb
@@ -487,13 +487,14 @@ static int pid_notify_with_fds_internal(
|
||||
if (r == -EPROTO)
|
||||
r = socket_address_parse_vsock(&address, e);
|
||||
if (r < 0)
|
||||
return r;
|
||||
return log_debug_errno(r, "Address NOTIFY_SOCKET='%s' is neither UNIX nor VSOCK, refusing: %m", e);
|
||||
msghdr.msg_namelen = address.size;
|
||||
|
||||
/* If we didn't get an address (which is a normal pattern when specifying VSOCK tuples) error out,
|
||||
* we always require a specific CID. */
|
||||
if (address.sockaddr.vm.svm_family == AF_VSOCK && address.sockaddr.vm.svm_cid == VMADDR_CID_ANY)
|
||||
return -EINVAL;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"VSOCK address in NOTIFY_SOCKET='%s' doesn't have CID, refusing.", e);
|
||||
|
||||
type = address.type == 0 ? SOCK_DGRAM : address.type;
|
||||
|
||||
@@ -592,7 +593,8 @@ static int pid_notify_with_fds_internal(
|
||||
} else {
|
||||
/* Unless we're using SOCK_STREAM, we expect to write all the contents immediately. */
|
||||
if (type != SOCK_STREAM && (size_t) n < iovec_total_size(msghdr.msg_iov, msghdr.msg_iovlen))
|
||||
return -EIO;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO),
|
||||
"Incomplete notify message sent to '%s': %m", e);
|
||||
|
||||
/* Make sure we only send fds and ucred once, even if we're using SOCK_STREAM. */
|
||||
msghdr.msg_control = NULL;
|
||||
@@ -613,6 +615,7 @@ static int pid_notify_with_fds_internal(
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EPROTO), "Unexpectedly received data on notify socket.");
|
||||
}
|
||||
|
||||
log_debug("Notify message sent to '%s': \"%s\"", e, state);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user