Re: Interesting panic from the Yahoo builder (10-current)

From: Davide Italiano <davide_at_freebsd.org>
Date: Sun, 8 Sep 2013 16:36:12 -0700
On Sun, Sep 8, 2013 at 4:27 PM, Sean Bruno <sean_bruno_at_yahoo.com> wrote:
> On Sat, 2013-09-07 at 17:05 +0200, Davide Italiano wrote:
>> On Fri, Sep 6, 2013 at 6:00 PM, Sean Bruno <sean_bruno_at_yahoo.com> wrote:
>> > Our "yBSD" builder needs to mount a disk image temporarily that has a
>> > dos partition (for openstack-ish things) to put configs into it.  It
>> > seems that under high stress, we can squeeze a panic out of it in
>> > namei().
>> >
>> > Sean
>> >
>> >
>> > Unread portion of the kernel message buffer:
>> > panic: namei: nameiop contaminated with flags
>> > cpuid = 8
>> > KDB: stack backtrace:
>> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe048d8e53b0
>> > kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffe048d8e5460
>> > vpanic() at vpanic+0x126/frame 0xfffffe048d8e54a0
>> > kassert_panic() at kassert_panic+0x136/frame 0xfffffe048d8e5510
>> > namei() at namei+0x2c8/frame 0xfffffe048d8e5600
>> > msdosfs_mount() at msdosfs_mount+0x556/frame 0xfffffe048d8e57c0
>> > vfs_donmount() at vfs_donmount+0xc35/frame 0xfffffe048d8e5aa0
>> > sys_nmount() at sys_nmount+0x72/frame 0xfffffe048d8e5ae0
>> > amd64_syscall() at amd64_syscall+0x223/frame 0xfffffe048d8e5bf0
>> > Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffe048d8e5bf0
>> > --- syscall (378, FreeBSD ELF64, sys_nmount), rip = 0x8000a8b68a, rsp = 0x7fffffffd508, rbp = 0x7fffffffdb30 ---
>> > Uptime: 34m55s
>> > Dumping 1140 out of 16350 MB:..2%..12%..22%..31%..41%..51%..61%..71%..82%..92%
>> >
>> > Reading symbols from /boot/modules/msdosfs.ko...done.
>> > Loaded symbols for /boot/modules/msdosfs.ko
>> > #0  doadump (textdump=1) at pcpu.h:227
>> > 227     pcpu.h: No such file or directory.
>> >         in pcpu.h
>> > (kgdb) Hangup detected on fd 0
>> > error detected on stdin
>>
>> Can you please print the value of cnp->cn_nameiop (or, even better,
>> the whole struct) before the panic?
>>
>> Thanks,
>>
>
> Hrm ... tried to reproduce after recompiling the kernel (turning off
> KDB_UNATTENDED) and its not happening now.
>
> I'll keep an eye out for it.
>
> Sean

>From a first look (even without the informations) it looks very
strange that the assertion fails, NDINIT() is called just before
namei() in order to initialize struct nameidata, and that's what
almost every other filesystem do, so I'm surprised noone hit this
problem before. A (relatively random) guess is that you might run on
(some sort of) broken hardware.

Thanks,

-- 
Davide

"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare
Received on Sun Sep 08 2013 - 21:36:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC