-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
SIGBUS on SPARC caused by NSS lookups #21935
Description
systemd version the issue has been seen with
Known good versions:
- sys-apps/systemd-249.4-r4 (but not recompiled it yet)
Known bad versions:
- sys-apps/systemd-249.6-r1
- sys-apps/systemd-249.7
- sys-apps/systemd-250-r1
Used distribution
Gentoo Linux.
Linux kernel version used (uname -a)
5.15.5-gentoo
CPU architecture issue was seen on
sparc64
Expected behaviour you didn't see
Commands which end up involving NSS lookups like
ls -alsucceeding.
Unexpected behaviour you saw
SIGBUS on
ls -al,sudo su.
Steps to reproduce the problem
- Install >sys-apps/systemd-249.4 on a
sparc64machine- Have systemd configured for NSS lookups in
/etc/nsswitch.conf- Try to run
ls -alor some other command which will need to lookup entries via NSS
Additional program output to the terminal or log subsystem illustrating the issue
Originally reported downstream in Gentoo here.
$ sudo su
Bus error (core dumped)
$ ls -al
Bus error (core dumped)
Backtrace:
(gdb) bt
#0 copy_synthesized_group (dest=0xfff800010049bf90 <resbuf>, src=0xfff8000100706b08 <root_group>, buffer=0x100001382a0 "root", buflen=1024, errnop=0xfff800010002fbd8)
at ../systemd-250/src/nss-systemd/nss-systemd.c:254
#1 0xfff80001005b6730 in _nss_systemd_getgrgid_r (gid=<optimized out>, gr=0xfff800010049bf90 <resbuf>, buffer=0x100001382a0 "root", buflen=1024, errnop=0xfff800010002fbd8)
at ../systemd-250/src/nss-systemd/nss-systemd.c:498
#2 0xfff80001002f1f54 in __getgrgid_r (gid=<optimized out>, resbuf=0xfff800010049bf90 <resbuf>, buffer=0x100001382a0 "root", buflen=1024, result=0x7fefff207e0) at ../nss/getXXbyYY_r.c:274
#3 0xfff80001002f150c in getgrgid (gid=<optimized out>) at ../nss/getXXbyYY.c:135
#4 0x0000010000012d3c in getgroup (gid=<optimized out>) at lib/idcache.c:167
#5 0x000001000000dc84 in format_group_width (g=0) at src/ls.c:4183
#6 gobble_file (name=0x1000012f623 "glibc-2.30-r9.ebuild", type=<optimized out>, command_line_arg=<optimized out>, dirname=<optimized out>, inode=0) at src/ls.c:3534
#7 0x000001000000e484 in print_dir (name=0x100001276e0 ".", realname=<optimized out>, command_line_arg=<optimized out>) at src/ls.c:2989
#8 0x00000100000046e4 in main (argc=<optimized out>, argv=<optimized out>) at src/ls.c:1778
(gdb)
Note that the machine is running glibc-2.33 and the 2.30 reference in the backtrace is just because there's a bunch of glibc ebuilds (=filenames) in the directory I was in.
I don't think there was anything else related/useful in the journal.