You are not logged in.
Pages: 1
I got this error:
[140331.161722] systemd-journald[169]: Vacuuming done, freed 0 bytes
[140331.319740] systemd-journald[169]: Failed to write entry (26 items, 284762942 bytes) despite vacuuming, ignoring: Argument list too long
[157396.490124] systemd[1]: segfault at b8 ip 000000000048101e sp 00007fff0dfd4220 error 4 in systemd[400000+106000]
Do you know anything about it?
Offline
Only what you've just told us.
Any chance you have bad RAM? Try running a memtest86+ test for several passes.
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Offline
I too have started hitting systemd segfaults. Probably related:
Offline
yesterday I had a segfault systemd
[166526.807673] systemd[1]: segfault at 101 ip 000000000048bd39 sp 00007fff4ba4f200 error 4 in systemd[400000+106000]
Offline
Lennart mentioned that it's "fixed in git" but didn't provide a commit hash.
I'm sifting through the commits in systemd after v210. So far this is the only one that looks likely to be the fix:
commit a1937e679f76758635d295287398abe526de2522
Author: David Herrmann <dh.herrmann@gmail.com>
Date: Tue Feb 25 12:20:25 2014 +0100
login: fix pos-array allocation
GREEDY_REALLOC takes a pointer to the real size, not the array-width as
argument. Therefore, our array is currently way to small to keep the seat
positions.
Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store
the array-width instead of array-size.
diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c
index 631be5f..36ec7ed 100644
--- a/src/login/logind-seat.c
+++ b/src/login/logind-seat.c
@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) {
if (seat_has_vts(s))
pos = session->vtnr;
- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1))
+ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1))
return;
seat_evict_position(s, session);
diff --git a/src/shared/util.h b/src/shared/util.h
index 9913fce..78b1444 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need);
#define GREEDY_REALLOC0(array, allocated, need) \
greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need))
+#define GREEDY_REALLOC0_T(array, count, need) \
+ ({ \
+ size_t _size = (count) * sizeof((array)[0]); \
+ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \
+ if (_ptr) \
+ (count) = _size / sizeof((array)[0]); \
+ _ptr; \
+ })
+
static inline void _reset_errno_(int *saved_errno) {
errno = *saved_errno;
}
Offline
Same for me with systemd 210-2:
[45779.228627] systemd[1]: segfault at 65757165 ip 080e04fa sp bfa070b0 error 4 in systemd[8048000+f6000]
I can only reboot with:
sync && reboot -f
Offline
Does this recur after rebooting for people?
Offline
Please try systemd 210-3, currently in [testing]. It applies a number of fixes from upstream.
Online
Does this recur after rebooting for people?
It happened to me twice, therefore once after a reboot.
Please try systemd 210-3, currently in [testing]. It applies a number of fixes from upstream.
Ok, I updated to 210-3 and have a look.
Offline
Pages: 1