Hi,
On Mon, 22 Jun 2009 13:39:38 +0300, Kristjan Eerik Kaseniit wrote:
> Thanks for replying!
> 
> This far:
> vstr ~ # ps aux | grep nilfs_cleanerd
> vstr ~ # cat /etc/nilfs_cleanerd.conf | grep protection_period
> protection_period    600
> vstr ~ # lscp
>                  CNO        DATE     TIME  MODE  FLG   NBLKINC       ICNT
>                18159  2009-06-19 18:04:28   cp    -      37700     286576
>                18160  2009-06-19 18:04:29   cp    -         42     286577
> .........................
>                19181  2009-06-19 19:32:04   cp    i       6621     291515
>                19182  2009-06-19 19:32:09   cp    -       6562     291515
> lscp: Input/output error
> vstr ~ # nilfs_cleanerd /dev/mmcblk0p1
> vstr ~ # ps aux | grep nilfs_cleanerd
> vstr ~ # dmesg | tail
> [14774.675905] attempt to access beyond end of device
> [14774.675911] mmcblk0p1: rw=0, want=10987108611918676376, limit=32097807
> [14774.675915] attempt to access beyond end of device
> [14774.675918] mmcblk0p1: rw=2, want=6289936748060867064, limit=32097807
> 
> As you can see, the protection_period has passed a long time ago and
> that the cleanerd won't start but produces errors.
> 
> >
> > Please post the first BUG message if you can get it.  It may be
> > helpful to analyze the unknown problem.
> >
> 
> kernel BUG at fs/nilfs/btree.c:496!
> invalid opcode: 0000 [#1] SMP
> last sysfs file:
> CPU 0
> Modules linked in:
> Pid: 952, comm: rc Not tainted 2.6.30-gentoo-r1 #1 Vostro 1400
> RIP: 0010:[<ffffffff81194348>] [<ffffffff81194348>]
> nilfs_btree_do_lookup+0xc0/0x192
> .......
> Call trace:
> nilfs_btree_lookup
> nilfs_bmap_lookup_at_level
> nilfs_bmap_lookup
> nilfs_mdt_submit_block
> nilfs_mdt_read_block
> nilfs_mdt_get_block
> selinux_inode_alloc_security
> nilfs_palloc_gent_entry_block
> __down_read
> nilfs_ifile_get_inode_block
> nilfs_iget
> nilfs_lookup
> do_lookup
> __link_path_walk
> path_walk
> do_path_lookup
> user_path_at
> mntput_no_expire
> cp_new_stat
> vfs_fstatat
> vfs_stat
> sys_newstat
> system_call_fastpath
> Code: ....
> RIP [<ffffffff81194348>] nilfs_btree_do_lookup+0xc0/0x192

According to your log, btree lookup on the inode file was failing
because a btree node block was in an inconsistent state.

The dmesg output shows there were violative access beyond the end of
the device.

> [14774.675905] attempt to access beyond end of device
> [14774.675911] mmcblk0p1: rw=0, want=10987108611918676376, limit=32097807
> [14774.675915] attempt to access beyond end of device
> [14774.675918] mmcblk0p1: rw=2, want=6289936748060867064, limit=32097807

Maybe some kind of deficiency is in the error path of btree code, and
it is preventing the btree node block from recovering from the errors
such as the disk full case.  I'm thinking to make time to review the
btree code from this viewpoint.

If something comes out about this, I will report in the list.

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

Reply via email to