UBIFS Index Node Corruption - Invalid Key Type
Richard Weinberger
richard at nod.at
Tue May 10 09:23:42 PDT 2016
Am 10.05.2016 um 16:49 schrieb DHANAPAL, GNANACHANDRAN (G.):
> On Tue, May 10, 2016 at 03:58:58PM +0200, Richard Weinberger wrote:
>> 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.
Of course I meant shouldn't. :-)
>> Can you please share the whole UBI image (a nanddump) such that I can
>> inspect it?
>>
>> --
>> Thanks,
>> //richard
>
> Thanks for the reply, Richard.
> Please find two files in google drive share.
>
> 1. dump_mtd7_ecc.log - /dev/mtd7 dump with ecc
> 2. leb_peb_map_22706.log - LEB to PEB map. This information is taken by having print in table.
>
> Share:
> https://drive.google.com/open?id=0B7tYZDLZ_KAZMFd4MENlQkJuNjA
Okay, I'll look. Can't promise that I have the time for a detailed analysis.
Thanks,
//richard
More information about the linux-mtd
mailing list