I have a recurring set of segfaults with 2.6.29-rc7 and yaffs 05/03/09
whilst trying to recover from a large failure.
I have just moved up from 2.6.25.2 (with checkpointed root partition yaffs
cvs 05/03/09 with 7 bad blocks) to 2.6.29-rc7. On the initial mounting
several thousand errors were produced (yaffs cvs 03/03/09), I moved yaffs up
to the 05/03/09 cvs version to be consistent but without any reduction in
messages.
Attempting to do rm -rf /mnt/root results in differing segfaults, the
initial one logged below. The same applies when returning to 2.6.25.2 with
yaffs 05/03/09. The partitions cannot be unmounted (busy) after the
segfaults.
I am able to do rm -rf and umount using a recovery initrd running 2.6.25.2 &
yaffs cvs 13/12/07, returning to yaffs 05/03/09, either kernel, and
executing rm -rf causes the same segfaults.
I have logs I can email but too large for the ML limit. Initial bits of
importance pasted below.
Any advice gratefully appreciated,
Jim
before initial mounting:
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V
8-bit)
4 NAND chips detected
Scanning device for bad blocks
Bad eraseblock 609 at 0x000004c20000
Bad eraseblock 612 at 0x000004c80000
Bad eraseblock 614 at 0x000004cc0000
Bad eraseblock 616 at 0x000004d00000
Bad eraseblock 911 at 0x0000071e0000
Bad eraseblock 6116 at 0x00002fc80000
Bad eraseblock 6491 at 0x000032b60000
cmdlinepart partition parsing not available
Creating 2 MTD partitions on "balloon3-nand":
0x000000000000-0x000000400000 : "Boot"
0x000000400000-0x000040000000 : "Root fs"
....
# mount /mnt/root
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncorrectable error : <3>uncorrectable error : <4>block 578 is bad
block 581 is bad
block 583 is bad
block 585 is bad
block 880 is bad
block 6085 is bad
block 6460 is bad
uncorrectable error : <3>uncorrectable error : <4>nand_erase: attempt to
erase a bad block at page 0x00001d80
nand_erase: attempt to erase a bad block at page 0x00001dc0
nand_erase: attempt to erase a bad block at page 0x00001e00
nand_erase: attempt to erase a bad block at page 0x00001e40
nand_erase: attempt to erase a bad block at page 0x00001e80
nand_erase: attempt to erase a bad block at page 0x00001ec0
nand_erase: attempt to erase a bad block at page 0x00001f00
nand_erase: attempt to erase a bad block at page 0x00001f40
nand_erase: attempt to erase a bad block at page 0x00001f80
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncor
**>> Block 8148 retired
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncord
Partially written block 6876 detected
Partially written block 6876 detected
[..... large number of lines .....]
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
uncorrectable error : <4>yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
# umount /mnt/root
save exit: isCheckpointed 0
save exit: isCheckpointed 0
After moving to 05/03/09 had same effect, decided to start logging details
for ML submission ..
# cat /proc/yaffs
YAFFS built:Mar 13 2009 17:01:38
$Id: yaffs_fs.c,v 1.75 2009-03-05 01:45:28 charles Exp $
$Id: yaffs_guts.c,v 1.79 2009-03-05 01:45:28 charles Exp $
# mount /mnt/root
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error :
<4>blockd
block 85 is bad
block 86 is bad
[..... large number of lines .....]
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
uncorrectable error : <3>uncorrectable error : <4>yaffs tragedy: no more
erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs_read_super: isCheckpointed 0
# umount /mnt/root
save exit: isCheckpointed 0
save exit: isCheckpointed 0
# mount /mnt/root
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
block 84 is bad
block 85 is bad