mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Zhihao Cheng <chengzhihao1@huawei.com>
To: Benedikt Spranger <b.spranger@linutronix.de>
Cc: Richard Weinberger <richard@nod.at>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>
Subject: Re: [PATCH 1/1] ubifs: Try to recover from missing znode
Date: Thu, 10 Oct 2024 10:30:07 +0800	[thread overview]
Message-ID: <fe73967e-875b-590b-946d-33028cd43c9d@huawei.com> (raw)
In-Reply-To: <20241009144900.367f9cb4@mitra>

在 2024/10/9 20:49, Benedikt Spranger 写道:
> On Wed, 9 Oct 2024 18:46:43 +0800
> Zhihao Cheng <chengzhihao1@huawei.com> wrote:
> 
>> 在 2024/10/9 14:03, Richard Weinberger 写道:
>>> ----- Ursprüngliche Mail -----
>>>> Von: "chengzhihao1" <chengzhihao1@huawei.com>
>>>> An: "Benedikt Spranger" <b.spranger@linutronix.de>, "linux-kernel"
>>>> <linux-kernel@vger.kernel.org> CC: "linux-mtd"
>>>> <linux-mtd@lists.infradead.org>, "richard" <richard@nod.at>
>>>> Gesendet: Mittwoch, 9. Oktober 2024 04:23:02 Betreff: Re: [PATCH
>>>> 1/1] ubifs: Try to recover from missing znode
>>>
>>>> 在 2024/10/8 21:33, Benedikt Spranger 写道:
>>>>> After powercut on a system using ubifs mounting failed:
>>>>>
>>>>> 2024-09-30T12:38:26.880487+02:00 sonja kernel: UBIFS error
>>>>> (ubi0:0 pid 2178): ubifs_read_node [ubifs]: bad node type (255
>>>>> but expected 9) 2024-09-30T12:38:26.880506+02:00 sonja kernel:
>>>>> UBIFS error (ubi0:0 pid 2178): ubifs_read_node [ubifs]: bad node
>>>>> at LEB 103:46920, LEB mapping status 0
>>>>> 2024-09-30T12:38:26.880509+02:00 sonja kernel: Not a node, first
>>>>> 24 bytes: 2024-09-30T12:38:26.880510+02:00 sonja kernel:
>>>>> 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 ........................
>>>>>
>>>>> While traversing over zbranches during the journal replay one
>>>>> zbranch points to a znode, which was not written to the flash and
>>>>> therefore the flash is empty.
>>>>
>>>> UBIFS guarantees two things for znodes:
>>>> 1) all index nodes(in commit seq N) are written on flash before
>>>> master nodes(for commit seq N) are written.
>>>> 2) all index nodes(in commit seq N) won't be erased from flash
>>>> before master nodes(for commit seq N+1) are written.
>>>> So, I don't understand that why znodes not exist during journal
>>>> replaying?
>>>
>>> In addition to that, is just one znode missing or are larger parts
>>> of the flash empty?
> 
> Some background:
> The system producing the broken image runs on an older kernel version
> (4.9.286-rt189). Attaching UBI performs without any error. It seems,
> that there is only one znode missing. There are empty parts on the
> flash, but as far as I can see all PEBs have UBI header Information.
> The missing znode is somewhere in th middle of an PEB and other znodes
> are in that PEB.
> 
>> After reviewing the TNC related code, I cannot find out any illegal
>> behaviors to make znode lost or valid index LEB erased.
> OK. Is it possible, that this behaviour is caused by a already fixed
> bug? This happend on a system running 4.9.286-rt189.

I found one patch [1], which fixes a data lost problem while writing failed.

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.12-rc2&id=31a149d5c13c4cbcf97de3435817263a2d8c9d6e
> 
>> Hi Benedikt, could you provide a corrupted UBIFS image? Let me try
>> getting more information.
> I need to clarify this.
> 
> Regards
>      Benedikt Spranger
> .
> 


      reply	other threads:[~2024-10-10  2:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-08 13:33 Benedikt Spranger
2024-10-09  2:23 ` Zhihao Cheng
2024-10-09  6:03   ` Richard Weinberger
2024-10-09 10:46     ` Zhihao Cheng
2024-10-09 12:49       ` Benedikt Spranger
2024-10-10  2:30         ` Zhihao Cheng [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fe73967e-875b-590b-946d-33028cd43c9d@huawei.com \
    --to=chengzhihao1@huawei.com \
    --cc=b.spranger@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®