On 3/25/20 11:53 PM, Jiri Slaby wrote:
bumped kernel - 5.5.11-24.g794b2e9-default + 5.5.12-24.g19257da-default rpm -qa dracut* dracut-050+suse.58.g0b998bee-lp151.8.1.x86_64 dracut-debuginfo-050+suse.58.g0b998bee-lp151.8.1.x86_64
Do not forget to install kmod debugsource.
rpm -qa *kmod* *glibc* | grep debugsource glibc-debugsource-2.26-lp151.19.3.1.x86_64 glibc-utils-src-debugsource-2.26-lp151.19.3.1.x86_64 kmod-debugsource-25-lp151.6.1.x86_64 gdb /usr/lib/dracut/dracut-install (gdb) r -d -D /var/tmp/dracut.TEST/initramfs -N i2o_scsi --kerneldir /lib/modules/5.5.12-24.g19257da-default/ -m usb_storage ... Program received signal SIGSEGV, Segmentation fault. _IO_vfprintf_internal (s=s@entry=0x7fffff7ff550, format=format@entry=0x7ffff780d041 "%s/%s.bin", ap=ap@entry=0x7fffff7ff6d0) at vfprintf.c:1320 1320 f = lead_str_end = __find_specmb ((const UCHAR_T *) format); (gdb) bt #0 _IO_vfprintf_internal (s=s@entry=0x7fffff7ff550, format=format@entry=0x7ffff780d041 "%s/%s.bin", ap=ap@entry=0x7fffff7ff6d0) at vfprintf.c:1320 #1 0x00007ffff7b26ab9 in ___vsnprintf_chk (s=0x7fffff7ff7c0 "", maxlen=<optimized out>, flags=1, slen=<optimized out>, format=0x7ffff780d041 "%s/%s.bin", args=args@entry=0x7fffff7ff6d0) at vsnprintf_chk.c:63 #2 0x00007ffff7b269e5 in ___snprintf_chk (s=s@entry=0x7fffff7ff7c0 "", maxlen=maxlen@entry=4096, flags=flags@entry=1, slen=slen@entry=4096, format=format@entry=0x7ffff780d041 "%s/%s.bin") at snprintf_chk.c:34 #3 0x00007ffff77eef02 in snprintf (__fmt=0x7ffff780d041 "%s/%s.bin", __n=4096, __s=0x7fffff7ff7c0 "") at /usr/include/bits/stdio2.h:64 #4 kmod_search_moddep (ctx=<optimized out>, name=0x7fffff800830 "uas") at libkmod/libkmod.c:579 #5 0x00007ffff77ef7fb in kmod_lookup_alias_from_moddep_file (ctx=ctx@entry=0x555555769520, name=name@entry=0x7fffff800830 "uas", list=list@entry=0x7fffff801870) at libkmod/libkmod.c:609 #6 0x00007ffff77f47e6 in kmod_module_new_from_lookup (ctx=0x555555769520, given_alias=<optimized out>, list=0x7fffff801870) at libkmod/libkmod-module.c:563 #7 0x00007ffff77f4979 in lookup_softdep (ctx=0x555555769520, array=<optimized out>, count=<optimized out>) at libkmod/libkmod-module.c:1528 #8 0x00007ffff77f5530 in kmod_module_get_softdeps (mod=0x55555576a6c0, pre=0x7fffff801918, post=0x7fffff801920) at libkmod/libkmod-module.c:1579 #9 0x000055555555ac10 in install_dependent_modules (modlist=0x555555cbe500) at install/dracut-install.c:1525 #10 0x000055555555aa65 in install_dependent_modules (modlist=0x555555cbe4e0) at install/dracut-install.c:1523 ...
Could you dump ctx here?
... (gdb) up #4 kmod_search_moddep (ctx=<optimized out>, name=0x7fffff800830 "uas") at libkmod/libkmod.c:579 579 snprintf(fn, sizeof(fn), "%s/%s.bin", ctx->dirname, (gdb) p *ctx value has been optimized out (gdb)
by adding a break point to kmod_new and stepping
iiuc, (gdb) b kmod_new Breakpoint 1 at 0x7ffff77ef2f0: file libkmod/libkmod.c, line 251. (gdb) r ... Breakpoint 1, kmod_new (dirname=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/", config_paths=0x0) at libkmod/libkmod.c:251 251 { (gdb) step 256 ctx = calloc(1, sizeof(struct kmod_ctx)); (gdb) step 251 { (gdb) step 256 ctx = calloc(1, sizeof(struct kmod_ctx)); (gdb) step __libc_calloc (n=1, elem_size=120) at malloc.c:3368 3368 { (gdb) step ... (gdb) step 3509 } (gdb) step kmod_new (dirname=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/", config_paths=0x0) at libkmod/libkmod.c:257 257 if (!ctx) (gdb) step 256 ctx = calloc(1, sizeof(struct kmod_ctx)); (gdb) step 257 if (!ctx) (gdb) step 261 ctx->log_fn = log_filep; (gdb) step 265 ctx->dirname = get_kernel_release(dirname); (gdb) step 261 ctx->log_fn = log_filep; (gdb) step 262 ctx->log_data = stderr; (gdb) step 260 ctx->refcount = 1; (gdb) step 265 ctx->dirname = get_kernel_release(dirname); (gdb) step get_kernel_release (dirname=dirname@entry=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/") at libkmod/libkmod.c:212 212 { (gdb) step 216 if (dirname != NULL) (gdb) step 217 return path_make_absolute_cwd(dirname); (gdb) step path_make_absolute_cwd (p=p@entry=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/") at shared/util.c:362 362 { (gdb) step 367 if (path_is_absolute(p)) (gdb) step 368 return strdup(p); (gdb) step __GI___strdup (s=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/") at strdup.c:40 40 { (gdb) step 41 size_t len = strlen (s) + 1; (gdb) step __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:79 79 pxor %xmm0, %xmm0 (gdb) step 80 pxor %xmm1, %xmm1 (gdb) step 81 pxor %xmm2, %xmm2 (gdb) step 82 pxor %xmm3, %xmm3 (gdb) step 83 movq %rdi, %rax (gdb) step 84 movq %rdi, %rcx (gdb) step 85 andq $4095, %rcx (gdb) step 87 cmpq $4047, %rcx (gdb) step 89 ja L(cross_page) (gdb) step 120 movdqu (%rax), %xmm4 (gdb) step 121 PCMPEQ %xmm0, %xmm4 (gdb) step 122 pmovmskb %xmm4, %edx (gdb) step 123 test %edx, %edx (gdb) step 124 je L(next48_bytes) (gdb) step 131 andq $-16, %rax (gdb) step 132 PCMPEQ 16(%rax), %xmm1 (gdb) step 133 PCMPEQ 32(%rax), %xmm2 (gdb) step 134 PCMPEQ 48(%rax), %xmm3 (gdb) step 135 pmovmskb %xmm1, %edx (gdb) step 136 pmovmskb %xmm2, %r8d (gdb) step 137 pmovmskb %xmm3, %ecx (gdb) step 138 salq $16, %rdx (gdb) step 139 salq $16, %rcx (gdb) step 140 orq %r8, %rcx (gdb) step 141 salq $32, %rcx (gdb) step 142 orq %rcx, %rdx (gdb) step 147 PROLOG(loop) (gdb) step __GI___strdup (s=0x555555767180 "/lib/modules/5.5.12-24.g19257da-default/") at strdup.c:42 42 void *new = malloc (len); (gdb) step Program received signal SIGSEGV, Segmentation fault. _IO_vfprintf_internal (s=s@entry=0x7fffff7ff550, format=format@entry=0x7ffff780d041 "%s/%s.bin", ap=ap@entry=0x7fffff7ff6d0) at vfprintf.c:1320 1320 f = lead_str_end = __find_specmb ((const UCHAR_T *) format); (gdb) -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org