Re: ffs_truncate3 panics

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Wed, 8 Aug 2018 12:30:54 +0000
Konstantin Belousov wrote:
>On Tue, Aug 07, 2018 at 12:28:33PM +0000, Rick Macklem wrote:
>> Hi,
>>
>> During testing of the pNFS server I get an ffs_truncate3 panic every once in a while.
>> A few things that might be relevant:
>> - Seems to happen more often when soft update journaling is enabled, but will
>>   happen when it is disabled.
>> - Normally happens when a fairly large subtree of the file system is being removed.
- Oh, and this is an old i386 with 256Mbytes (not one of them new fangled computers,
   where memory is in Gbytes;-)

>>
>> These file systems are a bit odd, since all the regular files in them are empty but
>> have extended attributes that are accessed during the subtree removal. (The
>> extended attributes tell the server where the data files are.)
>>
>> I replaced the panic() with a printf() and every time the printf() happens...
>> bo->bo_dirty.bv_cnt == 0 and bo->bo_clean.bv_cnt == 1.
>> After one of these printf()s, the system continues to run ok. When the file
>> system is fsck'd after this has occurred, it passes fine and I haven't seen and
>> indication of file system corruption after running with this file system for
>> quite a while after the printf()s first occurred.
>The lack of corruption is, most likely, because the files are removed.
>Would the files truncated to zero length and then extended, I am almost
>sure that a corruption occur.
>
>Can you print the only buffer on the clean queue when the panic occur ?
ffst3 vtyp=1 bodirty=0 boclean=1
buf at 0x428a110
b_flags = 0x20001020<vmio,reuse,cache>, b_xflags=0x2<clean>, b_vflags=0x0
b_error = 0, b_bufsize = 4096, b_bcount = 4096, b_resid = 0
b_bufobj = (0xfd8ba94), b_data = 0x5170000, b_blkno = -1, b_lblkno = -1, b_dep = 0
b_kvabase = 0x5170000, b_kvasize = 32768

>Also, it is interesting to know the initial length of the file.
Since they are regular files, they are 0 length. (Just inodes with extended attributes.)

>>
>> Since the panic() only occurs when "options INVARIANTS" is enabled and I don't
>> see evidence of file system corruption, I'm wondering if this panic() is valid and
>> needed?

rick
Received on Wed Aug 08 2018 - 10:30:57 UTC

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