Re: fsck segfaults on rpi3 running 13-stable
Date: Sun, 12 Feb 2023 19:53:24 UTC
On Sun, Feb 12, 2023 at 11:31:59AM -0800, Mark Millard wrote:
>
> I'll note that another option is to run fsck_ffs from
> lldb in the first place.
That seems more productive, yielding:
root@www:~ # lldb /sbin/fsck_ffs
(lldb) target create "/sbin/fsck_ffs"
Current executable set to '/sbin/fsck_ffs' (aarch64).
(lldb) run -fy
Process 62596 launched: '/sbin/fsck_ffs' (aarch64)
usage: fsck_ffs [-BCdEFfnpRrSyZ] [-b block] [-c level] [-m mode] filesystem ...
Process 62596 exited with status = 1 (0x00000001)
(lldb) q
root@www:~ # lldb fsck_ffs
(lldb) target create "fsck_ffs"
Current executable set to 'fsck_ffs' (aarch64).
(lldb) run -fy /dev/da1s2d
Process 62609 launched: '/sbin/fsck_ffs' (aarch64)
** /dev/da1s2d
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
7912408300994173476 BAD I=69393345
4313599915630302063 BAD I=69393345
-4473632163892877928 BAD I=69393345
8068741989830080453 BAD I=69393345
3857159125896022134 BAD I=69393345
-4354179704011695453 BAD I=69393345
7611175298055105740 BAD I=69393345
3985638883347136889 BAD I=69393345
-2495754894521232470 BAD I=69393345
7739654885841380823 BAD I=69393345
7912408300994173476 BAD I=69393351
4313599915630302063 BAD I=69393351
-4473632163892877928 BAD I=69393351
8068741989830080453 BAD I=69393351
3857159125896022134 BAD I=69393351
-4354179704011695453 BAD I=69393351
7611175298055105740 BAD I=69393351
3985638883347136889 BAD I=69393351
-2495754894521232470 BAD I=69393351
7739654885841380823 BAD I=69393351
7912408300994173476 BAD I=74682090
4313599915630302063 BAD I=74682090
-4473632163892877928 BAD I=74682090
8068741989830080453 BAD I=74682090
3857159125896022134 BAD I=74682090
-4354179704011695453 BAD I=74682090
7611175298055105740 BAD I=74682090
3985638883347136889 BAD I=74682090
-2495754894521232470 BAD I=74682090
7739654885841380823 BAD I=74682090
INODE CHECK-HASH FAILED I=74999808 OWNER=1842251117 MODE=15044
This version of LLDB has no plugin for the language "assembler". Inspection of frame variables will be limited.
Process 62609 stopped
* thread #1, name = 'fsck_ffs', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
frame #0: 0x00005c6f47c3d550 libc.so.7`strnlen at strnlen.S:50
47 bic src, srcin, 15
48 mov wtmp, 0xf00f
49 cbz cntin, L(nomatch)
-> 50 ld1 {vdata.16b}, [src], 16
51 dup vrepmask.8h, wtmp
52 cmeq vhas_chr.16b, vdata.16b, 0
53 lsl shift, srcin, 2
(lldb) bt all
* thread #1, name = 'fsck_ffs', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
* frame #0: 0x00005c6f47c3d550 libc.so.7`strnlen at strnlen.S:50
frame #1: 0x00005c6f47c08b48 libc.so.7`__vfprintf(fp=0x00005c6f47cd8b68, locale=0x00005c6f47cd84a8, fmt0="MTIME=%12.12s %4.4s ", ap=(__stack = 0x00005c6f45005c40, __gr_top = 0x00005c6f45005bd0, __vr_top = 0x00005c6f45005b90, __gr_offs = -48, __vr_offs = -128)) at vfprintf.c:854:25
frame #2: 0x00005c6f47c0752c libc.so.7`vfprintf_l(fp=0x00005c6f47cd8b68, locale=0x00005c6f47cd84a8, fmt0="MTIME=%12.12s %4.4s ", ap=(__stack = 0x00005c6f45005c40, __gr_top = 0x00005c6f45005bd0, __vr_top = 0x00005c6f45005b90, __gr_offs = -56, __vr_offs = -128)) at vfprintf.c:285:9
frame #3: 0x00005c6f47c09f94 libc.so.7`vfprintf(fp=<unavailable>, fmt0=<unavailable>, ap=<unavailable>) at vfprintf.c:292:9
frame #4: 0x00005c6f47c03dc0 libc.so.7`printf(fmt=<unavailable>) at printf.c:57:8
frame #5: 0x00005c6ec487edac fsck_ffs`prtinode(ip=<unavailable>) at inode.c:1314:2
frame #6: 0x00005c6ec487f000 fsck_ffs`getnextinode(inumber=74999808, rebuildcg=0) at inode.c:563:3
frame #7: 0x00005c6ec4882d5c fsck_ffs`pass1 [inlined] checkinode(inumber=74999808, idesc=0x00005c6f45005d20, rebuildcg=0) at pass1.c:254:12
frame #8: 0x00005c6ec4882d58 fsck_ffs`pass1 at pass1.c:181:8
frame #9: 0x00005c6ec488209c fsck_ffs`main [inlined] checkfilesys(filesys=<unavailable>) at main.c:446:2
frame #10: 0x00005c6ec48818b0 fsck_ffs`main(argc=1, argv=0x00005c6f45006138) at main.c:210:16
frame #11: 0x00005c6ec4877ec0 fsck_ffs`__start(argc=3, argv=0x00005c6f45006128, env=0x00005c6f45006148, cleanup=<unavailable>) at crt1_c.c:72:7
frame #12: 0x00007813def681d8 ld-elf.so.1`.rtld_start at rtld_start.S:41
(lldb)
Does that make any sense?
Thanks for writing!
bob prohaska