UBIFS Index Node Corruption - Invalid Key Type
Richard Weinberger
richard.weinberger at gmail.com
Tue May 10 06:58:58 PDT 2016
On Tue, May 10, 2016 at 2:14 PM, DHANAPAL, GNANACHANDRAN (G.)
<gdhanapa at visteon.com> wrote:
> Hi There,
>
> We have i.MX6d based platform that has FSL BSP 3.10.17 running.
> There is SLC Micron NAND of size 2GB with 512K Block size and 4K min I/O used
> for software storage. This NAND has got 7 partitions, Among that two partitions
> have Read-Write ubifs file system for runtime data and one has Read-only ubifs
> file system that has all the system files. Recently we have observed a issue that
> one of RW ubifs partition failed to mount due to invalid key type in one of index
> node in ubifs. we have seen the same issue in two units out of 1000 units running
> in the field.
>
> Following is the index node that has invalid key in its first branch.
> key type = 0xa917dd4c >> 29 = 5 (invalid key)
>
> magic 0x6101831
> crc 0x944add59
> node_type 9 (indexing node)
> group_type 0 (no node group)
> sqnum 378678
> len 148
> child_cnt 6
> level 2
> Branches:
> 0: LEB 569:280144 len 108 key (bad key type: 0x000001, 0xa917dd4c)
> 1: LEB 446:349792 len 108 key (5595, inode)
> 2: LEB 584:361528 len 108 key (5822, inode)
> 3: LEB 602:255360 len 108 key (6050, inode)
> 4: LEB 613:480280 len 188 key (6258, inode)
> 5: LEB 614:373784 len 88 key (6521, data, 25)
>
> Please help us to understand following points
>
> 1. Did this happen because abrupt power cut ? if so, how could CRC of the node still be intact?
> 2. Could there be any bit flip ? but still again CRC intact.
> 3. Would the key pointed by corrupted branch be UBIFS_DENT_KEY or UBIFS_XENT_KEY ?
> Because 29 bit of key[0] (0xa917dd4c & 0x1FFFFFFF) seems to have some kind of hash value.
> but node (at leb 569:280144) that is pointed by corrupted branch seem to be index node.
> 4. This corrupted entry is always seen in first branch of an index node in two failed units. Could there be reason?
> 5. Since CRC is intact, would there be any possibility or scenario that corrupted node can be written with valid CRC?
Hmm, this looks like some UBIFS inconsistency.
If the header CRC is correct it should be be any kind of bitflip or
power cut issue.
Can you please share the whole UBI image (a nanddump) such that I can
inspect it?
--
Thanks,
//richard
More information about the linux-mtd
mailing list