Re: Erase race?

Artem Bityutskiy
2010-04-27T13:03:21Z

On Tue, 2010-04-20 at 16:24 -0400, Jon Ringle wrote:
> On Tue, Apr 13, 2010 at 4:15 PM, Jon Ringle <jon@ringle.org> wrote:
> > Hi,
> > I have a few machines that have UBI and UBIFS on NOR flash that are
> > undergoing continuous reboot testing.
> > One of them just caught the following failure:
> >
> > [ 51.250000] IXP4XX-Flash.0: buffer write error (status 0xd0)
> > [ 51.250000] UBI error: ubi_io_write: error -22 while writing 64
> > bytes to PEB 226:0, written 0 bytes
> > [ 51.270000] UBI error: erase_worker: failed to erase PEB 226, error -22
> > [ 51.270000] UBI warning: ubi_ro_mode: switch to read-only mode
> > [ 51.290000] UBI error: do_work: work failed with error code -22
> > [ 51.290000] UBI error: ubi_thread: ubi_bgt0d: work failed with error code -22
> >
> > Looking at this it appears that the failure might have been caused due
> > to the erase_worker and ubi_io_write occurring out of order... since
> > it looks like ubi_io_write was trying to write at offset 0 of the PEB,
> > which I imagine would have to be the EC header, which should happen
> > after the block is erased. But it doesn't seem to be the case here.
>
> I had this issue occur again on another system:
> [ 48.250000] IXP4XX-Flash.0: buffer write error (status 0xd0)
> [ 48.250000] UBI error: ubi_io_write: error -22 while writing 64
> bytes to PEB 111:0, written 0 bytes
> [ 48.280000] UBI error: erase_worker: failed to erase PEB 111, error -22
> [ 48.280000] UBI warning: ubi_ro_mode: switch to read-only mode
> [ 48.310000] UBI error: do_work: work failed with error code -22
> [ 48.310000] UBI error: ubi_thread: ubi_bgt0d: work failed with error code -22
>
> Can anyone comment as to my theory that this is a race condition
> between ubi_io_write and erase_worker occurring out of order?

Did you debug this further? Any new findings?

--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)