Hi David,
On Fri, 27 Mar 2009 15:20:05 +0900 (JST), Ryusuke Konishi wrote:
> Hi,
> On Fri, 27 Mar 2009 06:55:56 +0100, David Arendt <[email protected]> wrote:
> > Hi,
> > 
> > one thing I forgot to mention, in /etc/nilfs_cleanerd.conf I changed 
> > n_segments_per clean to 20 in order to clean faster when running the 
> > cleaner manually. Could this have any influence ?
> 
> Yes, maybe.  It raises memory pressure then may induce unusual path of
> execution like cache invalidation.  It may even increase the chance of
> revealing underlying problems in relocation of on-disk blocks.
> 
> Decreasing cleaning_interval is safer in general.  We'll try the
> condition.
> 
> Regards,
> Ryusuke

I examined the case of nsegments_per_clean = 20 and met an
inconsistent state as follows:

 # lssu -a
             SEGNUM        DATE     TIME STAT     NBLOCKS
               ...
               7418  2009-03-27 18:41:33  -d-        2048
               7419  2009-03-27 18:41:48  -d-        2048
               7420  2009-03-27 18:42:08  -d-        2048
               7421  2009-03-27 18:42:28  -d-        2048
               7422  2009-03-27 18:42:48  ---        2048
               7423  2009-03-27 18:43:03  ---        2048
               7424  2009-03-27 18:43:23  -d-        2048
               7425  2009-03-27 18:43:33  ad-        1166
               7426  ---------- --:--:--  ad-           0
               7427  ---------- --:--:--  ---           0
               ...

Here, the segment 7422 and 7423 are in-use but not dirty.

This is crucial because these segments will be reallocated and
overridden later.  I suspect there is a bug of error handling
somewhere, and it evaporates the dirty flag and causes the crash.

If you have a (not broken) nilfs partition made under heavy stress,
could you try ``lssu -a'' likewise ?

I'll dig into this from now.

Regards,
Ryusuke Konishi
_______________________________________________
users mailing list
[email protected]
https://www.nilfs.org/mailman/listinfo/users

Reply via email to