ubifs_check_node: bad CRC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I have been using UBIFS on embedded devices for several years now.
We never had a corrupted filesystem. Recently, I used it on a 
board design based on the previous ones. On this new board I 
had several filesystem corruptions like the one below. 

I checked the CRC of the corrupted UBIFS node, and it is incorrect.
However, the CRC of the UBI LEB and the ECC of the NAND page _are_
correct.

This node is on a PEB that was copied (copy_flag = 1 in the header)

I have been working on this a lot now, and I would like to hear the
advice of the experts on how to find the cause of this corruption.

A bit of background : 
	The volume "userdata" is used for logging. 
	Approx. 1 message per second is logged. 
	It is mounted with option sync.
	Its size is 10MiB, the ubi0 device itself is 491MiB.
	There are other volumes on ubi0, that are not
	corrupted (rootfs, etc.) . They are less busy.

I imaged the NAND and can reproduce the error like this : 

flash_eraseall /dev/mtd8
nandwrite -no /dev/mtd8 nand-image.img
ubiattach /dev/ubi_ctrl -m 8
mount -t ubifs ubi0:userdata /mnt/
echo "azer" > /mnt/azer

Trace : 

[  202.408718] UBI: attaching mtd8 to ubi0
[  203.672957] UBI: scanning is finished
[  203.695000] UBI: attached mtd8 (name "NAND.ubi", size 491 MiB) to ubi0
[  203.702056] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
[  203.709244] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[  203.716264] UBI: VID header offset: 512 (aligned 512), data offset: 2048
[  203.723373] UBI: good PEBs: 3927, bad PEBs: 1, corrupted PEBs: 0
[  203.729729] UBI: user volume: 6, internal volumes: 1, max. volumes count: 128
[  203.737305] UBI: max/mean erase counter: 51/23, WL threshold: 4096, image sequence number: 751089049
[  203.746987] UBI: available PEBs: 589, total reserved PEBs: 3338, PEBs reserved for bad PEB handling: 79
[  203.757015] UBI: background thread "ubi_bgt0d" started, PID 248
[  213.080579] UBIFS: background thread "ubifs_bgt0_1" started, PID 250
[  213.106953] UBIFS: recovery needed
[  213.206555] UBIFS: recovery completed
[  213.210881] UBIFS: mounted UBI device 0, volume 1, name "userdata"
[  213.217435] UBIFS: LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[  213.227143] UBIFS: FS size: 9289728 bytes (8 MiB, 72 LEBs), journal size 1032193 bytes (0 MiB, 6 LEBs)
[  213.237007] UBIFS: reserved for root: 438776 bytes (428 KiB)
[  213.243019] UBIFS: media format: w4/r0 (latest is w4/r0), UUID 84A393F9-FCAF-4611-BE72-0C6E1D61115D, small LPT model
[  219.625362] UBIFS error (pid 241): ubifs_check_node: bad CRC: calculated 0xbfd1e3d2, read 0xc5aa5090
[  219.635114] UBIFS error (pid 241): ubifs_check_node: bad node at LEB 33:122880
[  219.642777]  magic          0x6101831
[  219.646651]  crc            0xc5aa5090
[  219.650634]  node_type      1 (data node)
[  219.654875]  group_type     0 (no node group)
[  219.659483]  sqnum          2408403
[  219.663187]  len            485
[  219.666513]  key            (1248, data, 4)
[  219.670953]  size           2950
[  219.674365]  compr_typ      1
[  219.677500]  data size      437
[  219.680884]  data:
[  219.683020]  00000000: 00 08 3a 35 34 20 6e 6f 68 6f 73 74 6c 61 6d 65 20 6c 6f 67 3a 20 53 48 44 53 4c 00 2e 00 00 03
[  219.694357]  00000020: 2d 20 4c 69 6e 6b b0 03 00 0e 34 20 54 72 79 69 6e 67 20 53 54 55 2d 43 20 6d 6f 60 65 0a 4a 61
[  219.705693]  00000040: 6e 20 20 36 20 31 33 32 35 35 20 15 54 01 04 32 20 73 74 61 72 74 7c 0a 0b 72 6f 6c 65 20 64 65
[  219.717028]  00000060: 74 65 63 74 69 6f 6e 2d 6e 01 36 20 6e 20 10 05 02 31 20 06 6d 01 38 20 14 6c 01 3e 34 04 20 13
[  219.728364]  00000080: 55 01 33 20 03 c4 02 00 36 3a 30 30 00 12 c5 02 33 2a fd 06 52 2f fc 06 20 16 55 00 34 00 06 c5
[  219.739703]  000000a0: 02 31 20 12 c4 02 2b c4 09 33 c4 02 20 13 54 01 20 04 c4 09 01 36 3a 30 33 20 12 c4 02 20 04 c4
[  219.751057]  000000c0: 09 20 16 6c 01 20 07 6d 08 35 20 12 dc 02 3b 6c 08 30 6f 0f 36 3a 30 20 13 54 01 20 07 6d 08 37
[  219.762391]  000000e0: 20 12 c0 02 2b 64 08 33 c4 02 20 13 54 01 20 07 6d 08 39 20 12 c5 02 32 3f bc 0d 20 13 54 81 20
[  219.773724]  00000100: 07 c4 09 20 13 6c 01 20 06 c5 09 31 20 13 14 0e 2b c4 09 32 6c 0f 20 14 54 01 20 06 c4 09 20 16
[  219.785059]  00000120: 6d 01 28 84 df 0d 29 20 44 4f 57 4e 5f 4e 4f 54 5f 52 45 41 44 59 2a a3 1a 36 3a 31 20 15 d8 10
[  219.796393]  00000140: 20 3a 68 01 20 02 7f 1d 36 3a 31 20 13 7d 0f 31 3e 44 0b 20 14 54 01 20 07 d4 09 20 13 c4 02 20
[  219.807727]  00000160: 07 7c 08 20 13 ec 10 2b 44 12 33 44 0b 20 13 54 01 20 06 45 12 31 20 13 7c 0f 2b 44 12 32 0d 15
[  219.819060]  00000180: 32 20 13 64 0f 20 06 44 12 20 14 6c 01 20 06 6d 08 32 20 13 10 0e 2b 44 12 33 34 04 20 13 54 01
[  219.830395]  000001a0: 2a c4 09 0b 6f 6c 65 20 64 65 74 65 63 74 69 6f 6e 0a 11 00 00
[  219.838690] CPU: 0 PID: 241 Comm: sh Not tainted 3.12.10 #1
[  219.844603] Backtrace: 
[  219.847248] [<c00120fc>] (dump_backtrace+0x0/0x108) from [<c001221c>] (show_stack+0x18/0x1c)
[  219.856195]  r6:cd596000 r5:d0b1f000 r4:ffffff8b
[  219.861136] [<c0012204>] (show_stack+0x0/0x1c) from [<c0815a34>] (dump_stack+0x20/0x2c)
[  219.869620] [<c0815a14>] (dump_stack+0x0/0x2c) from [<c0247354>] (ubifs_check_node+0x1b8/0x2d8)
[  219.878858] [<c024719c>] (ubifs_check_node+0x0/0x2d8) from [<c024f020>] (ubifs_scan_a_node+0xd8/0x1e8)
[  219.888738] [<c024ef48>] (ubifs_scan_a_node+0x0/0x1e8) from [<c024f194>] (ubifs_scan+0x64/0x300)
[  219.898067] [<c024f130>] (ubifs_scan+0x0/0x300) from [<c0253cb8>] (ubifs_garbage_collect_leb+0x84/0x7f4)
[  219.908127] [<c0253c34>] (ubifs_garbage_collect_leb+0x0/0x7f4) from [<c0254550>] (ubifs_garbage_collect+0x128/0x3b4)
[  219.919306] [<c0254428>] (ubifs_garbage_collect+0x0/0x3b4) from [<c023a240>] (make_reservation+0x120/0x440)
[  219.929643] [<c023a120>] (make_reservation+0x0/0x440) from [<c023c380>] (ubifs_jnl_update+0x12c/0x640)
[  219.939517] [<c023c254>] (ubifs_jnl_update+0x0/0x640) from [<c02413a0>] (ubifs_create+0x10c/0x1b0)
[  219.949027] [<c0241294>] (ubifs_create+0x0/0x1b0) from [<c00e5d8c>] (vfs_create+0xb0/0xdc)
[  219.957796] [<c00e5cdc>] (vfs_create+0x0/0xdc) from [<c00e6f50>] (do_last+0x94c/0xc9c)
[  219.966186]  r8:00020241 r7:cd5c7f5c r6:cd5c7ed0 r5:c9161f70 r4:000081a4
[  219.973334] [<c00e6604>] (do_last+0x0/0xc9c) from [<c00e7368>] (path_openat+0xc8/0x5ac)
[  219.981829] [<c00e72a0>] (path_openat+0x0/0x5ac) from [<c00e7960>] (do_filp_open+0x38/0x8c)
[  219.990707] [<c00e7928>] (do_filp_open+0x0/0x8c) from [<c00d7a94>] (do_sys_open+0x118/0x1d4)
[  219.999635]  r8:cd620000 r7:00000003 r6:000ad29c r5:ffffff9c r4:00020241
[  220.006786] [<c00d797c>] (do_sys_open+0x0/0x1d4) from [<c00d7b8c>] (SyS_open+0x24/0x28)
[  220.015288] [<c00d7b68>] (SyS_open+0x0/0x28) from [<c000ebc0>] (ret_fast_syscall+0x0/0x30)
[  220.024053] UBIFS error (pid 241): ubifs_scan: bad node
[  220.029585] UBIFS error (pid 241): ubifs_scanned_corruption: corruption at LEB 33:122880
[  220.038164] UBIFS error (pid 241): ubifs_scanned_corruption: first 6144 bytes from LEB 33:122880
[  220.047498] 00000000: 06101831 c5aa5090 0024bfd3 00000000 000001e5 00000001 000004e0 20000004  1....P....$.................... 
(clipped) 
[  220.051722] UBIFS error (pid 241): ubifs_scan: LEB 33 scanning failed
[  220.058571] UBIFS warning (pid 241): ubifs_ro_mode: switched to read-only mode, error -117
[  220.067357] CPU: 0 PID: 241 Comm: sh Not tainted 3.12.10 #1
[  220.073271] Backtrace: 
[  220.075883] [<c00120fc>] (dump_backtrace+0x0/0x108) from [<c001221c>] (show_stack+0x18/0x1c)
[  220.084830]  r6:cd596000 r5:ffffff8b r4:00000000
[  220.089747] [<c0012204>] (show_stack+0x0/0x1c) from [<c0815a34>] (dump_stack+0x20/0x2c)
[  220.098264] [<c0815a14>] (dump_stack+0x0/0x2c) from [<c0246c1c>] (ubifs_ro_mode+0x64/0x70)
[  220.107039] [<c0246bb8>] (ubifs_ro_mode+0x0/0x70) from [<c025464c>] (ubifs_garbage_collect+0x224/0x3b4)
[  220.117012] [<c0254428>] (ubifs_garbage_collect+0x0/0x3b4) from [<c023a240>] (make_reservation+0x120/0x440)
[  220.127348] [<c023a120>] (make_reservation+0x0/0x440) from [<c023c380>] (ubifs_jnl_update+0x12c/0x640)
[  220.137230] [<c023c254>] (ubifs_jnl_update+0x0/0x640) from [<c02413a0>] (ubifs_create+0x10c/0x1b0)
[  220.146736] [<c0241294>] (ubifs_create+0x0/0x1b0) from [<c00e5d8c>] (vfs_create+0xb0/0xdc)
[  220.155506] [<c00e5cdc>] (vfs_create+0x0/0xdc) from [<c00e6f50>] (do_last+0x94c/0xc9c)
[  220.163897]  r8:00020241 r7:cd5c7f5c r6:cd5c7ed0 r5:c9161f70 r4:000081a4
[  220.171045] [<c00e6604>] (do_last+0x0/0xc9c) from [<c00e7368>] (path_openat+0xc8/0x5ac)
[  220.179522] [<c00e72a0>] (path_openat+0x0/0x5ac) from [<c00e7960>] (do_filp_open+0x38/0x8c)
[  220.188388] [<c00e7928>] (do_filp_open+0x0/0x8c) from [<c00d7a94>] (do_sys_open+0x118/0x1d4)
[  220.197331]  r8:cd620000 r7:00000003 r6:000ad29c r5:ffffff9c r4:00020241
[  220.204483] [<c00d797c>] (do_sys_open+0x0/0x1d4) from [<c00d7b8c>] (SyS_open+0x24/0x28)
[  220.212982] [<c00d7b68>] (SyS_open+0x0/0x28) from [<c000ebc0>] (ret_fast_syscall+0x0/0x30)
[  220.222268] UBIFS error (pid 241): make_reservation: cannot reserve 384 bytes in jhead 1, error -117
[  220.232023] UBIFS error (pid 241): ubifs_create: cannot create regular file, error -117

Best regards,

-- 
Mickael Chazaux
Software Engineer
Tel : (33) 476 042 006
Fax : (33) 476 042 001

ETIC TELECOM
13, Chemin du Vieux Chêne
38240 MEYLAN
Tel: 33 4 76 04 20 00
fax : 33 4 76 04 20 01

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux