mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-08 05:57:26 +03:00
fdset: improve debug logging for left-over fds
Let's show which fds are closed as part of the left-over fd set logic on daemon reload/reexec cycles. This is useful to debug accidentally unclaimed fds. (cherry picked from commit 91a6447607635802ac2278b7997cde687e2549a4) (cherry picked from commit b4cdf320554f122700e9d12c81dccf2c7565860b)
This commit is contained in:
parent
44e3e23013
commit
062e3032e2
@ -51,6 +51,8 @@ void fdset_close(FDSet *s) {
|
||||
void *p;
|
||||
|
||||
while ((p = set_steal_first(MAKE_SET(s)))) {
|
||||
int fd = PTR_TO_FD(p);
|
||||
|
||||
/* Valgrind's fd might have ended up in this set here, due to fdset_new_fill(). We'll ignore
|
||||
* all failures here, so that the EBADFD that valgrind will return us on close() doesn't
|
||||
* influence us */
|
||||
@ -59,8 +61,14 @@ void fdset_close(FDSet *s) {
|
||||
* which has no effect at all, since they are only duplicates. So don't be surprised about
|
||||
* these log messages. */
|
||||
|
||||
log_debug("Closing set fd %i", PTR_TO_FD(p));
|
||||
(void) close_nointr(PTR_TO_FD(p));
|
||||
if (DEBUG_LOGGING) {
|
||||
_cleanup_free_ char *path = NULL;
|
||||
|
||||
(void) fd_get_path(fd, &path);
|
||||
log_debug("Closing set fd %i (%s)", fd, strna(path));
|
||||
}
|
||||
|
||||
(void) close_nointr(fd);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user