UBIFS: Recovery failed after power-cut
Lam Le
lam at bescosoftware.com
Wed Jul 6 23:51:37 PDT 2022
Hi,
Could someone give me a hint on this situation please. Is it a valid
case that znode is found but logical erase block lnum is not?
Thanks all, Lam
On 28/06/2022 8.55, Lam Le wrote:
> Hi all,
>
> We have had a mounting failed case due to power cut and I have been
> investigating the cause.
>
> The problem seems to come down to function ubifs_tnc_locate where
> corresponding znode is found but the logical erase block lnum is not.
> With current logic it returns an error code and thus fail the mount
> operation.
>
> My question is what could possibly cause this situation and in this
> case is it correct to return an error code or better an ENOENT?
>
>
> Trace:
>
> ubifs_tnc_locate
>
> ubifs_lookup_level0 -> returns found
>
> zt->lnum = 1445
>
> ubifs_tnc_read_node() returns node not found (unmapped)
>
> -> error
>
>
>
> Other info: kernel version: 4.19.170
>
> Mtdinfo:
>
> Count of MTD devices: 11
>
> Present MTD devices: mtd0, mtd1, mtd2, mtd3, mtd4, mtd5,
> mtd6, mtd7, mtd8, mtd9, mtd10
>
> Sysfs interface supported: yes
>
>
>
> mtd8
>
> Name: run-time files and logs
>
> Type: nand
>
> Eraseblock size: 262144 bytes, 256.0 KiB
>
> Amount of eraseblocks: 2094 (548929536 bytes, 523.5 MiB)
>
> Minimum input/output unit size: 4096 bytes
>
> Sub-page size: 4096 bytes
>
> OOB size: 224 bytes
>
> Character device major/minor: 90:16
>
> Bad blocks are allowed: true
> Device is writable: true
>
>
> Logs:
>
> [ 403.324692] UBIFS DBG tnc (pid 3123): search key (28892, inode)
> [ 403.330701] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 5
> [ 403.336160] UBIFS DBG tnc (pid 3123): LEB 1523:250736, key (28892,
> inode)
> [ 403.343004] UBIFS DBG io (pid 3123): LEB 1523:250736, inode node,
> length 160
> [ 403.350134] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:1523:250736
> [ 403.356986] UBI DBG eba (pid 3123): read 160 bytes from offset
> 250736 of LEB 0:1523, PEB 2044
> [ 403.365580] UBIFS DBG tnc (pid 3123): search key (28918, inode)
> [ 403.365588] UBIFS DBG io (pid 3123): LEB 1823:171312, indexing
> node, length 188
> [ 403.378897] UBI DBG gen (pid 3123): read 188 bytes from LEB
> 0:1823:171312
> [ 403.385752] UBI DBG eba (pid 3123): read 188 bytes from offset
> 171312 of LEB 0:1823, PEB 826
> [ 403.394727] UBIFS DBG tnc (pid 3123): LEB 1823:171312, level 1, 8
> branch
> [ 403.401501] UBIFS DBG io (pid 3123): LEB 1823:171160, indexing
> node, length 148
> [ 403.408900] UBI DBG gen (pid 3123): read 148 bytes from LEB
> 0:1823:171160
> [ 403.415761] UBI DBG eba (pid 3123): read 148 bytes from offset
> 171160 of LEB 0:1823, PEB 826
> [ 403.424270] UBIFS DBG tnc (pid 3123): LEB 1823:171160, level 0, 6
> branch
> [ 403.431031] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 1
> [ 403.436490] UBIFS DBG tnc (pid 3123): LEB 442:246840, key (28918,
> inode)
> [ 403.443248] UBIFS DBG io (pid 3123): LEB 442:246840, inode node,
> length 160
> [ 403.450266] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:442:246840
> [ 403.457025] UBI DBG eba (pid 3123): read 160 bytes from offset
> 246840 of LEB 0:442, PEB 2049
> [ 403.465973] UBIFS DBG tnc (pid 3123): search key (28973, inode)
> [ 403.471950] UBIFS DBG io (pid 3123): LEB 1448:24296, indexing node,
> length 188
> [ 403.479254] UBI DBG gen (pid 3123): read 188 bytes from LEB
> 0:1448:24296
> [ 403.486012] UBI DBG eba (pid 3123): read 188 bytes from offset
> 24296 of LEB 0:1448, PEB 633
> [ 403.494876] UBIFS DBG tnc (pid 3123): LEB 1448:24296, level 1, 8
> branch
> [ 403.501608] UBIFS DBG io (pid 3123): LEB 1448:23720, indexing node,
> length 188
> [ 403.508892] UBI DBG gen (pid 3123): read 188 bytes from LEB
> 0:1448:23720
> [ 403.515659] UBI DBG eba (pid 3123): read 188 bytes from offset
> 23720 of LEB 0:1448, PEB 633
> [ 403.524082] UBIFS DBG tnc (pid 3123): LEB 1448:23720, level 0, 8
> branch
> [ 403.530780] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 2
> [ 403.536231] UBIFS DBG tnc (pid 3123): LEB 1729:242968, key (28973,
> inode)
> [ 403.543077] UBIFS DBG io (pid 3123): LEB 1729:242968, inode node,
> length 160
> [ 403.550214] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:1729:242968
> [ 403.557075] UBI DBG eba (pid 3123): read 160 bytes from offset
> 242968 of LEB 0:1729, PEB 369
> [ 403.566027] UBIFS DBG tnc (pid 3123): search key (29007, inode)
> [ 403.572004] UBIFS DBG io (pid 3123): LEB 1823:203760, indexing
> node, length 188
> [ 403.579380] UBI DBG gen (pid 3123): read 188 bytes from LEB
> 0:1823:203760
> [ 403.586227] UBI DBG eba (pid 3123): read 188 bytes from offset
> 203760 of LEB 0:1823, PEB 826
> [ 403.595203] UBIFS DBG tnc (pid 3123): LEB 1823:203760, level 1, 8
> branch
> [ 403.601963] UBIFS DBG io (pid 3123): LEB 1823:203568, indexing
> node, length 188
> [ 403.609364] UBI DBG gen (pid 3123): read 188 bytes from LEB
> 0:1823:203568
> [ 403.616226] UBI DBG eba (pid 3123): read 188 bytes from offset
> 203568 of LEB 0:1823, PEB 826
> [ 403.624735] UBIFS DBG tnc (pid 3123): LEB 1823:203568, level 0, 8
> branch
> [ 403.631496] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 1
> [ 403.636954] UBIFS DBG tnc (pid 3123): LEB 1231:251896, key (29007,
> inode)
> [ 403.643800] UBIFS DBG io (pid 3123): LEB 1231:251896, inode node,
> length 160
> [ 403.650907] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:1231:251896
> [ 403.657751] UBI DBG eba (pid 3123): read 160 bytes from offset
> 251896 of LEB 0:1231, PEB 952
> [ 403.666715] UBIFS DBG tnc (pid 3123): search key (29034, inode)
> [ 403.672691] UBIFS DBG io (pid 3123): LEB 326:27048, indexing node,
> length 108
> [ 403.679888] UBI DBG gen (pid 3123): read 108 bytes from LEB
> 0:326:27048
> [ 403.686559] UBI DBG eba (pid 3123): read 108 bytes from offset
> 27048 of LEB 0:326, PEB 430
> [ 403.695359] UBIFS DBG tnc (pid 3123): LEB 326:27048, level 2, 4 branch
> [ 403.701950] UBIFS DBG io (pid 3123): LEB 326:26936, indexing node,
> length 108
> [ 403.709148] UBI DBG gen (pid 3123): read 108 bytes from LEB
> 0:326:26936
> [ 403.715821] UBI DBG eba (pid 3123): read 108 bytes from offset
> 26936 of LEB 0:326, PEB 430
> [ 403.724161] UBIFS DBG tnc (pid 3123): LEB 326:26936, level 1, 4 branch
> [ 403.730749] UBIFS DBG io (pid 3123): LEB 326:26288, indexing node,
> length 68
> [ 403.737863] UBI DBG gen (pid 3123): read 68 bytes from LEB 0:326:26288
> [ 403.744449] UBI DBG eba (pid 3123): read 68 bytes from offset 26288
> of LEB 0:326, PEB 430
> [ 403.752694] UBIFS DBG tnc (pid 3123): LEB 326:26288, level 0, 2 branch
> [ 403.759278] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 1
> [ 403.764729] UBIFS DBG tnc (pid 3123): LEB 1445:217432, key (29034,
> inode)
> [ 403.771589] UBIFS DBG io (pid 3123): LEB 1445:217432, inode node,
> length 160
> [ 403.778696] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:1445:217432
> [ 403.785546] UBI DBG eba (pid 3123): read 160 bytes from offset
> 217432 of LEB 0:1445 (unmapped)
> [ 403.794222] UBIFS DBG tnc (pid 3123): search key (29034, inode)
> [ 403.800252] UBIFS DBG tnc (pid 3123): found 1, lvl 0, n 1
> [ 403.805710] UBIFS DBG io (pid 3123): LEB 1445:217432, inode node,
> length 160
> [ 403.812818] UBI DBG gen (pid 3123): read 160 bytes from LEB
> 0:1445:217432
> [ 403.819720] UBI DBG eba (pid 3123): read 160 bytes from offset
> 217432 of LEB 0:1445 (unmapped)
> [ 403.828406] UBIFS error (ubi0:0 pid 3123): ubifs_read_node: bad
> node type (255 but expected 0)
> [ 403.837083] UBI DBG gen (pid 3123): test LEB 0:1445
> [ 403.842010] UBIFS error (ubi0:0 pid 3123): ubifs_read_node: bad
> node at LEB 1445:217432, LEB mapping status 0
> [ 403.852005] Not a node, first 24 bytes:
> [ 403.852013] 00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ........................
> [ 403.869003] UBIFS DBG tnc (pid 3123): key (29034, inode)
> [ 403.875243] UBI DBG gen (pid 3123): close device 0, volume 0, mode 2
> [ 403.883357] UBI DBG gen (pid 3123): close device 0, volume 0, mode 1
> mount: /mnt/test: wrong fs type, bad option, bad superblock on
> /dev/ubi0_0, missing codepage or helper program, or other error.
>
--
Best regards,
Lam Le
Consultant - BescoInc Oy - Tekniikantie 12, FI-02150 Espoo, Finland.
Direct: +358442725640. Email: lam at bescosoftware.com.
Skype: lam-le. Web: https://bescosoftware.com.
More information about the linux-mtd
mailing list