linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: Abe <ml-btrfs@zeroloop.net>, <linux-btrfs@vger.kernel.org>
Subject: Re: Broken RAID6, segfault on chunk-recover
Date: Fri, 8 Jan 2016 09:42:21 +0800	[thread overview]
Message-ID: <568F13FD.90605@cn.fujitsu.com> (raw)
In-Reply-To: <568E94CA.4070907@zeroloop.net>



Abe wrote on 2016/01/07 17:39 +0100:
> No wonder why chunck-recover crashed, superblocks are valid but they all
> contain a bogus chunk_root, it exceeds the total_bytes !
> So all I need it to find where that btree root is on disk, right?
>
> Problem is almost every tool from btrfs-progs is unusuable because they
> try to read the chunck root at first. Do you know of any alternative
> tool that could scan devices and find where roots might be?

First, you're wrong about the total_bytes and chunk_root bytenr.

Chunk_root bytenr is btrfs *logical* bytenr.
It is completely OK for logical bytenr to beyond total bytenr,

So the problem is not here.


The real problem for chunk recovery to segfault, would be that, in your 
cmds-check.c:5013, the leaf->data could be empty.

But you did give enough info or checked *leaf, so I can't determine now.

To recovery your RAID6, the possible chance lies in your superblock.

Please use run btrfs-show-super with -f -a to get full backup roots output.
Which may have a good old chunk root.

Thanks,
Qu

>
>
> All superblock copies for all devices look like this :
>
> # ./btrfs-show-super /dev/sdb1
> superblock: bytenr=65536, device=/dev/sdb1
> ---------------------------------------------------------
> csum			0x938855ef [match]
> bytenr			65536
> flags			0x1
> 			( WRITTEN )
> magic			_BHRfS_M [match]
> fsid			bec7b9a0-c56c-494e-8631-072d3f89c0c9
> label			hive
> generation		34245
> root			6766859681792
> sys_array_size		321
> chunk_root_generation	32751
> root_level		1
> chunk_root		4415566151680  <--- Impossible Offset
> chunk_root_level	1
> log_root		0
> log_root_transid	0
> log_root_level		0
> total_bytes		4096872997376  <---
> bytes_used		2438972817408
> sectorsize		4096
> nodesize		16384
> leafsize		16384
> stripesize		4096
> root_dir		6
> num_devices		8
> compat_flags		0x0
> compat_ro_flags		0x0
> incompat_flags		0x1e1
> 			( MIXED_BACKREF |
> 			  BIG_METADATA |
> 			  EXTENDED_IREF |
> 			  RAID56 |
> 			  SKINNY_METADATA )
> csum_type		0
> csum_size		4
> cache_generation	34245
> uuid_tree_generation	34245
> dev_item.uuid		ea4a089b-c88c-4a6c-80e5-b2c93f0613f5
> dev_item.fsid		bec7b9a0-c56c-494e-8631-072d3f89c0c9 [match]
> dev_item.type		0
> dev_item.total_bytes	512109125120
> dev_item.bytes_used	349754621952
> dev_item.io_align	4096
> dev_item.io_width	4096
> dev_item.sector_size	4096
> dev_item.devid		5
> dev_item.dev_group	0
> dev_item.seek_speed	0
> dev_item.bandwidth	0
> dev_item.generation	0
>
>
> Best regards,
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>



      reply	other threads:[~2016-01-08  1:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-04 13:32 Broken RAID6, segfault on chunk-recover Abe
2016-01-06 22:51 ` Abe
2016-01-07 16:39   ` Abe
2016-01-08  1:42     ` Qu Wenruo [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=568F13FD.90605@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=ml-btrfs@zeroloop.net \
    /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).