[PANIC] ufs_dirbad: bad dir
Don Lewis
truckman at FreeBSD.org
Tue Sep 27 10:33:11 PDT 2005
On 27 Sep, Kris Kennaway wrote:
> On Tue, Sep 27, 2005 at 02:20:57AM -0700, Don Lewis wrote:
>> On 26 Sep, Kris Kennaway wrote:
>> > On Mon, Sep 26, 2005 at 09:08:08AM -0700, David O'Brien wrote:
>> >> On Mon, Sep 26, 2005 at 08:29:52AM -0700, David O'Brien wrote:
>> >> > Anyone own this one?
>> >> > The running kernel was:
>> >> > FreeBSD 7.0-CURRENT #528: Sun Sep 25 21:07:22 PDT 2005
>> >> ...
>> >> > panic messages:
>> >> > panic: ufs_dirbad: bad dir
>> >>
>> >> Just got another one - uptime was about 10 minutes. Is one of the recent
>> >> changes to SU & FFS making this situation easier to trigger?
>> >
>> > As I've mentioned the last few times you reported this, it's a
>> > long-standing bug that has existed since the FreeBSD 4.x days or
>> > before. Try to fsck -f your filesystems to make sure there is no
>> > lingering damage.
>>
>> I think there is a soft updates bug that can leave directories in an
>> inconsistent state after a crash. If you are experiencing this problem,
>> I would recommend making sure that all of your file systems are clean by
>> running fsck -f, and then disabling background_fsck. Be on the lookout
>> for any unexpected soft updates inconsistencies after system crashes
>> (other than those caused by power failures if disk write caching is
>> enabled). If the ufs_dirbad panics still happen when starting from known
>> clean file systems, then the problem is something that I'm unaware of.
>> The message printed before the panic string would also be helpful.
>
> I do not use bg fsck anywhere because of too many lingering problems
> after unclean shutdowns. Moreover, on many of the machines I see this
> on, they newfs all their local filesystems at boot time (they
> netboot). So one cause of this is either runtime corruption, or they
> have unreliable disks that are losing transactions.
>
>> ufs_dirbad() should probably be re-written to combine the printf()
>> string with the panic() string.
>
> In my case it's usually
>
> ./ufs/ufs_lookup.c: ufs_dirbad(dp, dp->i_offset, "mangled entry");
This is something I've never encountered. What does *ep look like? Is
bp_bdata all zeros? What are the file system block and fragment sizes?
If the problem is caused by hardware, I would expect you to also see
file data corruption.
More information about the freebsd-current
mailing list