ubifs_decompress: cannot decompress 2293 bytes, compressor lzo, error -22

Scott Zhang macromarship at gmail.com
Tue Apr 19 20:00:04 PDT 2022


I tried all the tests. Looks all passed.

[root at 303mini /root]
# ./flash_speed /dev/mtd3
scanning for bad eraseblocks
scanned 1 eraseblocks, 0 are bad
testing eraseblock read speed
eraseblock read speed is 25600 KiB/s
testing page read speed
page read speed is 32000 KiB/s
testing 2 page read speed
2 page read speed is 32000 KiB/s
Testing 2x multi-block erase speed
2x multi-block erase speed is 0 KiB/s
Testing 4x multi-block erase speed
4x multi-block erase speed is 0 KiB/s
Testing 8x multi-block erase speed
8x multi-block erase speed is 0 KiB/s
Testing 16x multi-block erase speed
16x multi-block erase speed is 0 KiB/s
Testing 32x multi-block erase speed
32x multi-block erase speed is 0 KiB/s
Testing 64x multi-block erase speed
64x multi-block erase speed is 0 KiB/s
finished

[root at 303mini /root]
# ./flash_stress /dev/mtd3
scanning for bad eraseblocks
scanned 848 eraseblocks, 4 are bad
doing operations
0 operations done
1024 operations done
2048 operations done
3072 operations done
4096 operations done
5120 operations done
6144 operations done
7168 operations done
8192 operations done
9216 operations done
finished, 10000 operations done

[root at 303mini /root]
# ./flash_torture /dev/mtd3
libmtd: run torture test for PEB 0
libmtd: PEB 0 passed torture test, do not mark it a bad
Torture test iterations done: 1

[root at 303mini /root]
# ./flash_torture /dev/mtd3
libmtd: run torture test for PEB 0
libmtd: PEB 0 passed torture test, do not mark it a bad
Torture test iterations done: 1

[root at 303mini /root]
# ./flash_readtest /dev/mtd3
testing page read
Thu Jan  1 00:09:29 UTC 1970:connection timeout and reboot eth0's negotiation
Skipping bad block 844
Skipping bad block 845
Skipping bad block 846
Skipping bad block 847

[root at 303mini /root]
# ./nandpagetest /dev/mtd3
ignoring bad erase block 844
ignoring bad erase block 845
ignoring bad erase block 846
ignoring bad erase block 847
erasing all blocks
erased 848 eraseblocks
writing all blocks
written up to eraseblock 0
written up to eraseblock 256
written up to eraseblock 512
written up to eraseblock 768
written 848 eraseblocks
verifying all eraseblocks
verified up to eraseblock 0
verified up to eraseblock 256
verified up to eraseblock 512
verified up to eraseblock 768
verified 848 eraseblocks
crosstest
reading page at block 0, page 0
reading page at block 843, page 63
reading page at block 0, page 0
verifying pages read at block 0 match
crosstest ok
erasecrosstest
erasing block 0
writing 1st page of block 0
reading 1st page of block 0
verifying 1st page of block 0
erasing block 0
writing 1st page of block 0
erasing block 843
reading 1st page of block 0
verifying 1st page of block 0
erasecrosstest ok
erasetest
erasing block 0
writing 1st page of block 0
erasing block 0
reading 1st page of block 0
verifying 1st page of block 0 is all 0xff
erasetest ok

[root at 303mini /root]
# ./nandsubpagetest /dev/mtd3
ignoring bad erase block 844
ignoring bad erase block 845
ignoring bad erase block 846
ignoring bad erase block 847
erasing good eraseblocks
verifying all eraseblocks for 0xff
verified 848 eraseblocks
writing first 2 sub-pages on PEB 0
writing first 2 sub-pages on PEB 1
writing first 2 sub-pages on PEB 2
writing first 2 sub-pages on PEB 3
writing first 2 sub-pages on PEB 4
writing first 2 sub-pages on PEB 5
writing first 2 sub-pages on PEB 6
writing first 2 sub-pages on PEB 7
writing first 2 sub-pages on PEB 8
writing first 2 sub-pages on PEB 9
writing first 2 sub-pages on PEB 10
writing first 2 sub-pages on PEB 11
writing first 2 sub-pages on PEB 12
writing first 2 sub-pages on PEB 13
writing first 2 sub-pages on PEB 14
writing first 2 sub-pages on PEB 15
writing first 2 sub-pages on PEB 16
writing first 2 sub-pages on PEB 17
writing first 2 sub-pages on PEB 18
writing first 2 sub-pages on PEB 19
.....

erifying exponential offset & size writes on PEB 840
verifying exponential offset & size writes on PEB 841
verifying exponential offset & size writes on PEB 842
verifying exponential offset & size writes on PEB 843
erasing good eraseblocks
verifying all eraseblocks for 0xff
verified 848 eraseblocks

On Tue, Apr 19, 2022 at 5:11 PM Scott Zhang <macromarship at gmail.com> wrote:
>
> the lzo error is not always. It didn't happen on root partition yet.
> On opt, only when few files are being read, dmesg would complain lzo
> decompress. I don't know how this happen for first time. Only  when
> this happens, it sticks there, I don't see any side effect, seams
> everything continues working.
>
> On Tue, Apr 19, 2022 at 5:03 PM Scott Zhang <macromarship at gmail.com> wrote:
> >
> > Thanks.
> >
> > I will do more tests.
> >
> > I created ubifs by using buildroot with default options.
> > My nand drivers only pass biterrors test at the moment.
> > I am using default buildroot ubifs.img so I didn't test with others yet.
> >
> > I will let you know after I finish the test.
> >
> > On Tue, Apr 19, 2022 at 3:44 PM Richard Weinberger <richard at nod.at> wrote:
> > >
> > > ----- Ursprüngliche Mail -----
> > > > Did you run the various nand tests besides nandbiterrs? If they all
> > > > pass then maybe Richard will be more helpful than I am...
> > >
> > > [...]
> > >
> > > >>
> > > >> But I noticed the lzo decompress error is still there.
> > > >> I did  following actions to test.
> > > >> /dev/mtd3 is mounted on /opt using ubifs.
> > > >> tar zcvf /root/opt.tar.gz /opt  (done without error)
> > > >> format /opt.
> > > >> tar zxvf /root/opt.tar.gz -C /
> > >
> > > How did you create ubifs?
> > >
> > > Does your nand driver pass ubi tests?
> > >
> > > >> Then when I run php program which is in opt. I saw dmesg
> > > >> [  118.850000] UBIFS error (ubi0:0 pid 1526): ubifs_decompress: cannot
> > > >> decompress 2293 bytes, compressor lzo, error -22
> > > >> [  118.860000] UBIFS error (ubi0:0 pid 1526): do_readpage: bad data
> > > >> node (block 15, inode 396)
> > > >> [  118.870000] UBIFS error (ubi0:0 pid 1526): do_readpage: cannot read
> > > >> page 15 of inode 396, error -22
> > > >> [  118.880000] UBIFS error (ubi0:0 pid 1526): ubifs_decompress: cannot
> > > >> decompress 2293 bytes, compressor lzo, error -22
> > > >> [  118.900000] UBIFS error (ubi0:0 pid 1526): do_readpage: bad data
> > > >> node (block 15, inode 396)
> > > >> [  118.900000] UBIFS error (ubi0:0 pid 1526): do_readpage: cannot read
> > > >> page 15 of inode 396, error -22
> > > >> [  118.920000] UBIFS error (ubi0:0 pid 1526): ubifs_decompress: cannot
> > > >> decompress 2293 bytes, compressor lzo, error -22
> > > >> [  118.930000] UBIFS error (ubi0:0 pid 1526): do_readpage: bad data
> > > >> node (block 15, inode 396)
> > > >> [  118.940000] UBIFS error (ubi0:0 pid 1526): do_readpage: cannot read
> > > >> page 15 of inode 396, error -22
> > > >>
> > > >> I removed the ubifs_dump_node call to avoid many dump text. The
> > > >> problem is when I run php program, lots of above logs dumped.
> > > >> But I don't see any effect of the above logs. the program seems running.
> > > >> Is there a possibility the underlying nand driver data is ok, but the
> > > >> lzo compress/decompress code has bugs ?  I am running linux-5.4.y
> > > >> cloned from kernel.org.
> > >
> > > Does the problem only happen with lzo?
> > >
> > > Please re-test with no compressor enabled (compr=none) and also mount with
> > > the chk_data_crc mount option.
> > >
> > > Thanks,
> > > //richard



More information about the linux-mtd mailing list