1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-27 18:55:09 +03:00

journald: be a bit more verbose when vacuuming

Vacuuming behaviour is a bit confusing, and/or we have some bugs,
so those additional messages should help to find out what's going
on. Also, rotation of journal files shouldn't be happening too
often, so the level of the messages is bumped to info, so that
they'll be logged under normal operation.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-09-10 08:20:24 -04:00
parent 33e74db266
commit 289f910e16
4 changed files with 25 additions and 11 deletions

View File

@ -223,8 +223,10 @@ static int fifo_process(Fifo *f) {
assert(f);
errno = EIO;
if ((l = read(f->fd, ((uint8_t*) &f->buffer) + f->bytes_read, sizeof(f->buffer) - f->bytes_read)) <= 0) {
l = read(f->fd,
((uint8_t*) &f->buffer) + f->bytes_read,
sizeof(f->buffer) - f->bytes_read);
if (l <= 0) {
if (errno == EAGAIN)
return 0;
@ -372,8 +374,8 @@ static int process_event(Server *s, struct epoll_event *ev) {
}
f = (Fifo*) ev->data.ptr;
if ((r = fifo_process(f)) < 0) {
r = fifo_process(f);
if (r < 0) {
log_info("Got error on fifo: %s", strerror(-r));
fifo_free(f);
return r;

View File

@ -159,7 +159,7 @@ int journal_directory_vacuum(
struct vacuum_info *list = NULL;
unsigned n_list = 0, i;
size_t n_allocated = 0;
uint64_t sum = 0;
uint64_t sum = 0, freed = 0;
usec_t retention_limit = 0;
assert(directory);
@ -267,13 +267,17 @@ int journal_directory_vacuum(
continue;
if (journal_file_empty(dirfd(d), p)) {
/* Always vacuum empty non-online files. */
if (unlinkat(dirfd(d), p, 0) >= 0)
log_debug("Deleted empty journal %s/%s.", directory, p);
else if (errno != ENOENT)
uint64_t size = 512UL * (uint64_t) st.st_blocks;
if (unlinkat(dirfd(d), p, 0) >= 0) {
log_info("Deleted empty journal %s/%s (%"PRIu64" bytes).",
directory, p, size);
freed += size;
} else if (errno != ENOENT)
log_warning("Failed to delete %s/%s: %m", directory, p);
continue;
}
@ -310,7 +314,9 @@ int journal_directory_vacuum(
break;
if (unlinkat(dirfd(d), list[i].filename, 0) >= 0) {
log_debug("Deleted archived journal %s/%s.", directory, list[i].filename);
log_debug("Deleted archived journal %s/%s (%"PRIu64" bytes).",
directory, list[i].filename, list[i].usage);
freed += list[i].usage;
if (list[i].usage < sum)
sum -= list[i].usage;
@ -329,5 +335,7 @@ finish:
free(list[i].filename);
free(list);
log_info("Vacuuming done, freed %"PRIu64" bytes", freed);
return r;
}

View File

@ -1301,7 +1301,7 @@ static int access_check(sd_journal *j) {
int main(int argc, char *argv[]) {
int r;
_cleanup_journal_close_ sd_journal*j = NULL;
_cleanup_journal_close_ sd_journal *j = NULL;
bool need_seek = false;
sd_id128_t previous_boot_id;
bool previous_boot_id_valid = false, first_line = true;

View File

@ -1092,6 +1092,8 @@ int process_event(Server *s, struct epoll_event *ev) {
}
if (sfsi.ssi_signo == SIGUSR1) {
log_info("Received request to flush runtime journal from PID %"PRIu32,
sfsi.ssi_pid);
touch("/run/systemd/journal/flushed");
server_flush_to_var(s);
server_sync(s);
@ -1099,6 +1101,8 @@ int process_event(Server *s, struct epoll_event *ev) {
}
if (sfsi.ssi_signo == SIGUSR2) {
log_info("Received request to rotate journal from PID %"PRIu32,
sfsi.ssi_pid);
server_rotate(s);
server_vacuum(s);
return 1;