From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: "Nik." <btrfs@avgustinov.eu>,
"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: interest in post-mortem examination of a BTRFS system and improving the btrfs-code?
Date: Sat, 6 Apr 2019 15:45:14 +0800 [thread overview]
Message-ID: <00e3ddf1-cbd7-a65a-dee3-ca720cecc77d@gmx.com> (raw)
In-Reply-To: <51021dd7-b21b-b001-c3f9-9bc31205738b@avgustinov.eu>
[-- Attachment #1.1: Type: text/plain, Size: 3960 bytes --]
On 2019/4/6 下午3:16, Nik. wrote:
>
>
> 2019-04-06 02:03, Qu Wenruo:
>>
>>
>> On 2019/4/6 上午3:38, Nik. wrote:
>>>
>>>
>>> 2019-04-05 10:15, Qu Wenruo:
>>>>
>>>>
>>>> On 2019/4/5 下午3:41, Nik. wrote:
>>>>>
>>>>> Below is the stderr of both commands:
>>>>>
>>>>> # btrfs inspect dump-tree -t chunk /dev/md0>DT-chunk.log
>>>>> # btrfs inspect dump-tree -t extent /dev/md0>DT-extent.log
>>>>> ERROR: leaf 1894009225216 slot 30 pointer invalid, offset 146038
>>>>> size 37
>>>>> leaf data limit 16283
>>>>> ERROR: skip remaining slots
>>>>>
>>>>> Since the output on stdout is pretty long even after gzip, I am
>>>>> providing only the output of the first command as attachment. The
>>>>> output
>>>>> of the second command (25 MB after gzip -9) can be downloaded here:
>>>>>
>>>>> https://cloud.avgustinov.eu/index.php/s/AgbwWyCrbYjenq8
>>>>
>>>> Sorry, I should have use a more specific command to get a smaller
>>>> output.
>>>> But anyway, your output is good enough for me to craft the fix patch.
>>>>
>>>> Here is the dirty fix branch:
>>>> https://github.com/adam900710/btrfs-progs/tree/dirty_fix_for_nik
>>>>
>>>> Compile the btrfs-progs as usual.
>>>> Just a late hint, you can disable document/btrfs-convert to reduce the
>>>> dependency:
>>>> $ ./configure --disable-documentation --disable-convert
>>>>
>>>> Then, inside btrfs-progs directory, call:
>>>> # ./btrfs-corrupt-block -X /dev/md0
>>> incorrect offsets 15003 146075
>>> Open ctree failed
>>
>> Oh, I forgot it's in extent tree, which may need to be read out at mount
>> time.
>>
>> Just a new flag can handle it.
>>
>> The branch is updated, please check.
>
> New output:
> Successfully repair tree block at 1894009225216
>
> # mount -t btrfs -o ro /dev/md0 /mnt/md0/
> mount: /mnt/md0: wrong fs type, bad option, bad superblock on /dev/md0,
> missing codepage or helper program, or other error.
>
> # dmesg|tail
> ...
> [34848.784117] BTRFS info (device md0): disk space caching is enabled
> [34848.954741] BTRFS info (device md0): bdev /dev/md0 errs: wr 0, rd 0,
> flush 0, corrupt 2181, gen 0
> [34850.150789] BTRFS critical (device md0): corrupt leaf: root=1
> block=1894009225216 slot=30, unexpected item end, have 131072 expect 15003
> [34850.151209] BTRFS error (device md0): failed to read block groups: -5
> [34850.196156] BTRFS error (device md0): open_ctree failed
>
> It seems that there is improvement...
Debug info added.
Please try again, and sorry for the inconvenience. Hopes this is the
last try.
Thanks,
Qu
>
> Thank you.
> Nik.
> --
>
>> Thanks,
>> Qu
>>
>>>
>>> Actually there was one warning during make, I don't know of it is
>>> relevant:
>>> [CC] check/main.o
>>> check/main.c: In function ‘try_repair_inode’:
>>> check/main.c:2688:5: warning: ‘ret’ may be used uninitialized in this
>>> function [-Wmaybe-uninitialized]
>>> if (!ret) {
>>> ^
>>> check/main.c:2666:6: note: ‘ret’ was declared here
>>> int ret;
>>> ^~~
>>>
>>> The previous steps were as follow (output ommited, since nothing
>>> unexpected happened):
>>> #git clone --single-branch -v -b dirty_fix_for_nik
>>> https://github.com/adam900710/btrfs-progs.git
>>> #cd btrfs-progs/
>>> #./autogen.sh
>>> #./configure --disable-documentation --disable-convert
>>> #make
>>>
>>> Did I got the right branch? Or miss any step?
>>>
>>> Kind regards,
>>> Nik.
>>> --
>>>
>>>> If everything goes correctly, it should output something like:
>>>> Successfully repaired tree block at 1894009225216
>>>> (And please ignore any grammar error in my code)
>>>>
>>>> After that, please run a "btrfs check --readonly" to ensure no other
>>>> bit
>>>> flip in your fs.
>>>>
>>>> Thanks,
>>>> Qu
>>>>
>>>>
>>>>
>>>>>
>>>>> Hope this is ok.
>>>>>
>>>>> Regards,
>>>>> Nik.
>>>>> -
>>>>
>>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2019-04-06 7:45 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <aa81a49a-d5ca-0f1c-fa75-9ed3656cff55@avgustinov.eu>
2019-03-31 18:44 ` interest in post-mortem examination of a BTRFS system and improving the btrfs-code? btrfs
2019-04-02 0:24 ` Qu Wenruo
2019-04-02 13:06 ` Nik.
2019-04-02 13:24 ` Qu Wenruo
2019-04-02 13:29 ` Hugo Mills
2019-04-02 14:05 ` Nik.
2019-04-02 13:59 ` Nik.
2019-04-02 14:12 ` Qu Wenruo
2019-04-02 14:19 ` Hans van Kranenburg
2019-04-02 15:04 ` Nik.
2019-04-02 15:07 ` Hans van Kranenburg
2019-04-02 21:22 ` Nik.
2019-04-03 1:04 ` Qu Wenruo
2019-04-04 15:27 ` Nik.
2019-04-05 0:47 ` Qu Wenruo
2019-04-05 6:58 ` Nik.
2019-04-05 7:08 ` Qu Wenruo
[not found] ` <e9720559-eff2-e88b-12b4-81defb8c29c5@avgustinov.eu>
2019-04-05 8:15 ` Qu Wenruo
2019-04-05 19:38 ` Nik.
2019-04-06 0:03 ` Qu Wenruo
2019-04-06 7:16 ` Nik.
2019-04-06 7:45 ` Qu Wenruo [this message]
2019-04-06 8:44 ` Nik.
2019-04-06 9:06 ` Qu Wenruo
2019-04-06 13:20 ` Nik.
2019-04-06 13:22 ` Qu Wenruo
2019-04-06 13:28 ` Qu Wenruo
2019-04-06 14:19 ` Nik.
2019-04-06 23:18 ` Qu Wenruo
2019-04-07 7:41 ` Nik.
2019-04-07 18:45 ` Chris Murphy
2019-04-08 13:09 ` Qu Wenruo
2019-04-08 21:22 ` Nik.
2019-04-12 10:44 ` Nik.
2019-04-12 10:50 ` Qu Wenruo
2019-04-12 11:38 ` Nik.
2019-04-12 12:45 ` Qu Wenruo
2019-05-07 17:17 ` Nik.
2019-05-07 17:30 ` Chris Murphy
2019-05-13 12:19 ` Nik.
2019-04-10 21:03 ` Nik.
2019-04-11 0:45 ` Qu Wenruo
2019-04-02 18:28 ` Chris Murphy
2019-04-02 19:02 ` Hugo Mills
2019-04-04 2:48 ` Jeff Mahoney
2019-04-04 15:58 ` Nik.
2019-04-04 17:31 ` Chris Murphy
[not found] ` <beab578a-ccaf-1ec7-c7b6-1ba9cd3743ad@avgustinov.eu>
2019-04-05 7:07 ` Chris Murphy
2019-04-05 12:07 ` Nik.
2019-04-12 10:52 ` Nik.
2019-04-05 6:53 ` Chris Murphy
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=00e3ddf1-cbd7-a65a-dee3-ca720cecc77d@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=btrfs@avgustinov.eu \
--cc=linux-btrfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).