Systemctl daemon-reload fails with SEGV. The fatal pointer is only 2 bit different from the expected value
zlind0 opened this issue · 1 comments
systemd version the issue has been seen with
219
Used distribution
CentOS7
Linux kernel version used
4.19.48-006
CPU architectures issue was seen on
aarch64
Component
systemd
Expected behaviour you didn't see
systemctl daemon-reload reloads the daemon successfully without any exception, and the unit linked list is intact.
Unexpected behaviour you saw
systemctl daemon-reload caused segmentation fault in systemd.
The coredump suggests it crashes in
unic.c: unit_free(Unit *u)
if (u->type != _UNIT_TYPE_INVALID)
LIST_REMOVE(units_by_type, u->manager->units_by_type[u->type], u);
Here, the linked list is broken.
u->units_by_type_prev points to a wrong address, 0xaaaa87549290, whereas the correct one is 0xaaaad7549290.
Comparing 0xaaaa87549290 and 0xaaaad7549290 , there is only 2 bit difference, 0x000050000000.
I know systemd 219 is a thing from the last decade. I'm sorry to ask help in this manner. But I've struggled for weeks. I searched all the commit history but found nothing related. I am grateful if someone has any suggestion on this. Thanks a lot.
Steps to reproduce the problem
Unknown
Additional program output to the terminal or log subsystem illustrating the issue
No response
You are aware that CentOS 7 is EOL, are you? Anyway, this looks like a HW issue to me.