Kernel panic - not syncing: VFS: Unable to mount root fs (ubifs)

Hi,

Our company has around 400 iMX7 on the field. In a period of 8 months we’ve already had 4 cases of kernel panic due to ubifs errors. Is there any recommendation to avoid this problem? eg. a new kernel version?

U-Boot 2016.11-00015-gf4db39e-dirty (Sep 12 2018 - 19:10:06 -0300)

CPU:   Freescale i.MX7S rev1.2 at 792MHz
CPU:   Extended Commercial temperature grade (-20C to 105C) at 30C
Reset cause: POR
DRAM:  256 MiB
Enabling LCD pin on GPIO 2
PMIC:  RN5T567 LSIVER=0x01 OTPVER=0x0d
NAND:  512 MiB
MMC:   FSL_SDHC: 0
Video: 640x480x18
In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX7 Solo 256MB V1.1B, Serial# 02952173
Net:   FEC0
Hit any key to stop autoboot:  0 
Booting from NAND...
ubi0: default fastmap pool size: 200
ubi0: default fastmap WL pool size: 100
ubi0: attaching mtd1
ubi0: attached by fastmap
ubi0: fastmap pool size: 200
ubi0: fastmap WL pool size: 100
ubi0: attached mtd1 (name "mtd=4", size 508 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 4060, bad PEBs: 4, corrupted PEBs: 0
ubi0: user volume: 5, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 22/3, WL threshold: 4096, image sequence number: 0
ubi0: available PEBs: 0, total reserved PEBs: 4060, PEBs reserved for bad PEB handling: 76
No size specified -> Using max size (5588008)
Read 5588008 bytes from volume kernel to 81000000
No size specified -> Using max size (41150)
Read 41150 bytes from volume dtb to 82000000
Kernel image @ 0x81000000 [ 0x000000 - 0x554428 ]
## Flattened Device Tree blob at 82000000
   Booting using the fdt blob at 0x82000000
   Using Device Tree in place at 82000000, end 8200d0bd
   Updating MTD partitions...

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.87-dirty (joao@joao-Inspiron-7520) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #1 SMP PREEMPT Tue Oct 16 13:34:14 -03 2018
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: Toradex Colibri iMX7S on Colibri Evaluation Board V3
[    0.000000] cma: Reserved 128 MiB at 0x88000000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] percpu: Embedded 14 pages/cpu @87d8e000 s26624 r8192 d22528 u57344
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs ubi.fm_autoconvert=1 console=tty1 console=ttymxc0,115200n8 consoleblank=0
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 116340K/262144K available (7168K kernel code, 304K rwdata, 2260K rodata, 1024K init, 401K bss, 14732K reserved, 131072K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0x90800000 - 0xff800000   (1776 MB)
[    0.000000]     lowmem  : 0x80000000 - 0x90000000   ( 256 MB)
[    0.000000]     modules : 0x7f000000 - 0x80000000   (  16 MB)
[    0.000000]       .text : 0x80008000 - 0x80800000   (8160 kB)
[    0.000000]       .init : 0x80b00000 - 0x80c00000   (1024 kB)
[    0.000000]       .data : 0x80c00000 - 0x80c4c360   ( 305 kB)
[    0.000000]        .bss : 0x80c4e000 - 0x80cb2658   ( 402 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000007] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.000021] Switching to timer-based delay loop, resolution 125ns
[    0.000357] Ignoring duplicate/late registration of read_current_timer delay
[    0.000378] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[    0.001861] Console: colour dummy device 80x30
[    0.002593] console [tty1] enabled
[    0.002627] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=8000)
[    0.002679] pid_max: default: 32768 minimum: 301
[    0.002815] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.002850] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.003600] CPU: Testing write buffer coherency: ok
[    0.003970] Setting up static identity map for 0x80100000 - 0x80100058
[    0.016065] Brought up 1 CPUs
[    0.016103] SMP: Total of 1 processors activated (16.00 BogoMIPS).
[    0.016132] CPU: All CPU(s) started in SVC mode.
[    0.016762] devtmpfs: initialized
[    0.030484] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.030866] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.030927] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.035970] pinctrl core: initialized pinctrl subsystem
[    0.037340] NET: Registered protocol family 16
[    0.044406] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.048771] cpuidle: using governor menu
[    0.061674] DDR type is DDR3!
[    0.069732] imx7d_enet_clk_sel: fec1: failed to get enet_out clock, assuming ext. clock source
[    0.069814] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.069857] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.070273] imx7d-pinctrl 302c0000.iomuxc-lpsr: initialized IMX pinctrl driver
[    0.071962] imx7d-pinctrl 30330000.iomuxc: initialized IMX pinctrl driver
[    0.072843] imx-gpcv2 30000000.aips-bus:pgc: mipi regulator not ready.
[    0.073527] MU is ready for cross core communication!
[    0.103568] mxs-dma 33000000.dma-apbh: initialized
[    0.105292] VCC_USB[1-4]: supplied by 5V
[    0.106031] SCSI subsystem initialized
[    0.106353] usbcore: registered new interface driver usbfs
[    0.106457] usbcore: registered new interface driver hub
[    0.106595] usbcore: registered new device driver usb
[    0.106881] 30800000.aips-bus:usbphynop1 supply vcc not found, using dummy regulator
[    0.107054] 30800000.aips-bus:usbphynop3 supply vcc not found, using dummy regulator
[    0.108255] i2c i2c-0: IMX I2C adapter registered
[    0.108297] i2c i2c-0: can't use DMA, using PIO instead.
[    0.108573] Linux video capture interface: v2.00
[    0.108650] pps_core: LinuxPPS API ver. 1 registered
[    0.108679] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.108740] PTP clock support registered
[    0.109295] imx rpmsg driver is registered.
[    0.109496] Advanced Linux Sound Architecture Driver Initialized.
[    0.111250] clocksource: Switched to clocksource arch_sys_counter
[    0.111416] VFS: Disk quotas dquot_6.6.0
[    0.111513] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.123704] NET: Registered protocol family 2
[    0.124423] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.124492] TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
[    0.124558] TCP: Hash tables configured (established 2048 bind 2048)
[    0.124636] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.124691] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.124868] NET: Registered protocol family 1
[    0.127387] RPC: Registered named UNIX socket transport module.
[    0.127423] RPC: Registered udp transport module.
[    0.127450] RPC: Registered tcp transport module.
[    0.127475] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.129502] Bus freq driver module loaded
[    0.132115] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[    0.142580] NFS: Registering the id_resolver key type
[    0.142640] Key type id_resolver registered
[    0.142667] Key type id_legacy registered
[    0.142703] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.145491] ntfs: driver 2.1.32 [Flags: R/W].
[    0.145937] fuse init (API version 7.26)
[    0.154681] io scheduler noop registered
[    0.154720] io scheduler deadline registered
[    0.154959] io scheduler cfq registered (default)
[    0.158151] 30730000.lcdif supply lcd not found, using dummy regulator
[    0.225526] mxsfb 30730000.lcdif: failed to find mxc display driver 
[    0.237361] Console: switching to colour frame buffer device 128x37
[    0.252070] mxsfb 30730000.lcdif: initialized
[    0.253645] imx-sdma 30bd0000.sdma: no iram assigned, using external mem
[    0.257228] imx-sdma 30bd0000.sdma: loaded firmware 4.2
[    0.264832] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 52, base_baud = 1500000) is a IMX
[    0.948517] console [ttymxc0] enabled
[    0.955399] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 53, base_baud = 1500000) is a IMX
[    0.967400] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 54, base_baud = 1500000) is a IMX
[    0.995095] loop: module loaded
[    1.006340] vdd1p0d: supplied by DCDC3
[    1.028857] random: fast init done
[    1.035834] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc
[    1.044552] nand: Macronix MX30LF4G28AB
[    1.050707] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 112
[    1.062552] gpmi-nand 33002000.gpmi-nand: enable the asynchronous EDO mode 5
[    1.072208] Bad block table found at page 262080, version 0x01
[    1.080673] Bad block table found at page 262016, version 0x01
[    1.089327] 5 ofpart partitions found on MTD device gpmi-nand
[    1.097543] Creating 5 MTD partitions on "gpmi-nand":
[    1.105049] 0x000000000000-0x000000080000 : "mx7-bcb"
[    1.113058] 0x000000080000-0x000000200000 : "u-boot1"
[    1.120941] 0x000000200000-0x000000380000 : "u-boot2"
[    1.128803] 0x000000380000-0x000000400000 : "u-boot-env"
[    1.136879] 0x000000400000-0x000020000000 : "ubi"
[    1.152853] gpmi-nand 33002000.gpmi-nand: driver registered.
[    1.161911] spi_imx 30840000.ecspi: dma setup error -19, use pio
[    1.171059] spi_imx 30840000.ecspi: probed
[    1.177970] libphy: Fixed MDIO Bus: probed
[    1.186832] pps pps0: new PPS source ptp0
[    1.200417] libphy: fec_enet_mii_bus: probed
[    1.208107] fec 30be0000.ethernet eth0: registered PHC device 0
[    1.216482] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.225293] ehci-mxc: Freescale On-Chip EHCI Host driver
[    1.233085] usbcore: registered new interface driver usb-storage
[    1.241491] usbcore: registered new interface driver usbserial
[    1.249597] usbcore: registered new interface driver usbserial_generic
[    1.258326] usbserial: USB Serial support registered for generic
[    1.266468] usbcore: registered new interface driver ftdi_sio
[    1.274348] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.283842] usbcore: registered new interface driver pl2303
[    1.291542] usbserial: USB Serial support registered for pl2303
[    1.300774] 30b10200.usbmisc supply vbus-wakeup not found, using dummy regulator
[    1.310518] 30b30200.usbmisc supply vbus-wakeup not found, using dummy regulator
[    1.321592] mousedev: PS/2 mouse device common for all mice
[    1.332550] input: AD7879 Touchscreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-002c/input/input0
[    1.346526] snvs_rtc 30370000.snvs:snvs-rtc-lp: rtc core: registered 30370000.snvs:snvs- as rtc1
[    1.357732] i2c /dev entries driver
[    1.366067] imx2-wdt 30280000.wdog: timeout 60 sec (nowayout=0)
[    1.375959] sdhci: Secure Digital Host Controller Interface driver
[    1.384538] sdhci: Copyright(c) Pierre Ossman
[    1.391212] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.400140] sdhci-esdhc-imx 30b40000.usdhc: Got CD GPIO
[    1.442519] mmc0: SDHCI controller on 30b40000.usdhc [30b40000.usdhc] using ADMA
[    1.458920] caam 30900000.caam: ERA source: CCBVID.
[    1.467908] caam 30900000.caam: Entropy delay = 3200
[    1.476599] caam 30900000.caam: Instantiated RNG4 SH0
[    1.536013] caam 30900000.caam: Instantiated RNG4 SH1
[    1.543507] caam 30900000.caam: device ID = 0x0a16030000000000 (Era 8)
[    1.554541] caam 30900000.caam: job rings = 3, qi = 0
[    1.582311] caam algorithms registered in /proc/crypto
[    1.605904] caam_jr 30901000.jr0: registering rng-caam
[    1.616961] caam 30900000.caam: caam pkc algorithms registered in /proc/crypto
[    1.627603] hidraw: raw HID events driver (C) Jiri Kosina
[    1.635782] usbcore: registered new interface driver usbhid
[    1.643885] usbhid: USB HID core driver
[    1.658750] coresight-etm3x 3007c000.etm: ETM 3.5 initialized
[    1.675017] sgtl5000 0-000a: sgtl5000 revision 0x11
[    1.735909] Netfilter messages via NETLINK v0.30.
[    1.745348] nfnl_acct: registering with nfnetlink.
[    1.752866] nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
[    1.761729] nf_tables: (c) 2007-2009 Patrick McHardy <kaber@trash.net>
[    1.773228] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.784858] NET: Registered protocol family 10
[    1.794069] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    1.803110] NET: Registered protocol family 17
[    1.810162] Bridge firewalling registered
[    1.818729] 8021q: 802.1Q VLAN Support v1.8
[    1.827331] Key type dns_resolver registered
[    1.846459] Registering SWP/SWPB emulation handler
[    1.856353] registered taskstats version 1
[    1.909475] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    1.916662] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.933368] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.942180] hub 1-0:1.0: USB hub found
[    1.948194] hub 1-0:1.0: 1 port detected
[    1.956154] imx_thermal 30000000.aips-bus:tempmon: Extended Commercial CPU temperature grade - max:105C critical:100C passive:95C
[    1.990975] asoc-simple-card sound: sgtl5000 <-> 308a0000.sai mapping ok
[    2.001766] ubi0: default fastmap pool size: 200
[    2.008913] ubi0: default fastmap WL pool size: 100
[    2.016224] ubi0: attaching mtd4
[    2.202288] ubi0: attached by fastmap
[    2.208394] ubi0: fastmap pool size: 200
[    2.214682] ubi0: fastmap WL pool size: 100
[    2.232061] ubi0: attached mtd4 (name "ubi", size 508 MiB)
[    2.239897] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    2.249090] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    2.258210] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    2.267504] ubi0: good PEBs: 4060, bad PEBs: 4, corrupted PEBs: 0
[    2.275999] ubi0: user volume: 5, internal volumes: 1, max. volumes count: 128
[    2.285623] ubi0: max/mean erase counter: 22/3, WL threshold: 4096, image sequence number: 0
[    2.296498] ubi0: available PEBs: 0, total reserved PEBs: 4060, PEBs reserved for bad PEB handling: 76
[    2.308340] ubi0: background thread "ubi_bgt0d" started, PID 155
[    2.317656] input: gpio-keys as /devices/soc0/gpio-keys/input/input1
[    2.318165] hctosys: unable to open rtc device (rtc0)
[    2.361472] ALSA device list:
[    2.367840]   #0: imx7-sgtl5000
[    2.405439] UBIFS (ubi0:4): recovery needed
[    2.647855] random: crng init done
[    2.743696] UBIFS error (ubi0:4 pid 1): ubifs_get_pnode.part.4: error -22 reading pnode at 9:75862
[    2.755321] (pid 1) dumping pnode:
[    2.761312]  address 864aa880 parent 864aa800 cnext 0
[    2.768980]  flags 0 iip 3 level 0 num 0
[    2.775499]  0: free 77824 dirty 131048 flags 1 lnum 0
[    2.783252]  1: free 0 dirty 6944 flags 1 lnum 0
[    2.790493]  2: free 0 dirty 94192 flags 1 lnum 0
[    2.797853]  3: free 0 dirty 2552 flags 1 lnum 0
[    2.804953] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.87-dirty #1
[    2.813793] Hardware name: Freescale i.MX7 Dual (Device Tree)
[    2.821936] [<8010e904>] (unwind_backtrace) from [<8010b5f4>] (show_stack+0x10/0x14)
[    2.832103] [<8010b5f4>] (show_stack) from [<804100b0>] (dump_stack+0x78/0x8c)
[    2.841798] [<804100b0>] (dump_stack) from [<80380848>] (ubifs_get_pnode.part.4+0x23c/0x2ac)
[    2.852753] [<80380848>] (ubifs_get_pnode.part.4) from [<803821e8>] (ubifs_lpt_lookup_dirty+0x264/0x2ac)
[    2.864859] [<803821e8>] (ubifs_lpt_lookup_dirty) from [<8038556c>] (ubifs_update_one_lp+0x34/0x140)
[    2.876658] [<8038556c>] (ubifs_update_one_lp) from [<80373ac4>] (ubifs_tnc_add+0x108/0x120)
[    2.887817] [<80373ac4>] (ubifs_tnc_add) from [<80376e14>] (ubifs_replay_journal+0xe14/0x12a0)
[    2.899192] [<80376e14>] (ubifs_replay_journal) from [<8036cb78>] (ubifs_mount+0x11c0/0x15e8)
[    2.910489] [<8036cb78>] (ubifs_mount) from [<80204e78>] (mount_fs+0x14/0xa4)
[    2.920390] [<80204e78>] (mount_fs) from [<8021f788>] (vfs_kern_mount+0x4c/0xf4)
[    2.930558] [<8021f788>] (vfs_kern_mount) from [<80222590>] (do_mount+0x154/0xb88)
[    2.940895] [<80222590>] (do_mount) from [<80223364>] (SyS_mount+0x90/0xc0)
[    2.950627] [<80223364>] (SyS_mount) from [<80b011b0>] (mount_block_root+0x138/0x2a0)
[    2.961222] [<80b011b0>] (mount_block_root) from [<80b014e0>] (prepare_namespace+0x9c/0x194)
[    2.972419] [<80b014e0>] (prepare_namespace) from [<80b00e48>] (kernel_init_freeable+0x1d4/0x1e4)
[    2.984043] [<80b00e48>] (kernel_init_freeable) from [<807a3308>] (kernel_init+0x8/0x108)
[    2.994986] [<807a3308>] (kernel_init) from [<801078d0>] (ret_from_fork+0x14/0x24)
[    3.005405] UBIFS error (ubi0:4 pid 1): ubifs_get_pnode.part.4: calc num: 335
[    3.015365] UBIFS error (ubi0:4 pid 1): ubifs_update_one_lp: cannot update properties of LEB 1351, error -22
[    3.030969] List of all partitions:
[    3.037458] No filesystem could mount root, tried: [    3.042318]  ubifs
[    3.047315] 
[    3.051680] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    3.062877] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Best regards

Hi @joaopaulob

The Bsp you are using is not supported. Could you update to the newest Bsp 2.8b6 and check if you still see the issue?

Best regards,
Jaski