Skip to contentSkip to conversation

Fsck, parent transid verify failed

DISCUSSION Tommy Jonsson 3 participants 13 messages Dec 1, 2010 – Jan 3, 2011 1 message not in the archive Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hi folks!

Been using btrfs for quite a while now, worked great until now. Got power-loss on my machine and now i have the "parent transid verify failed on X wanted X found X" problem.
So I can't get it to mount.

My btrfs is spread over sda (2tb), sdc(2tb), sdd(1tb).

Is this something that an offline fsck could fix ?
If so is the fsck-util being developed ?
Is there a way to mount the FS in a read-only mode or something to rescue the data ?

Thanks, Tommy.

#1 lore raw

Excerpts from Tommy Jonsson's message of 2010-12-01 06:00:56 -0500:

Quoted 7 lines

Hi folks!

Been using btrfs for quite a while now, worked great until now. Got power-loss on my machine and now i have the "parent transid verify failed on X wanted X found X" problem.
So I can't get it to mount.

Quoted 6 lines

My btrfs is spread over sda (2tb), sdc(2tb), sdd(1tb).

Is this something that an offline fsck could fix ?
If so is the fsck-util being developed ?
Is there a way to mount the FS in a read-only mode or something to rescue the data ?

Which kernel are you on? Unless you formatted with -m raid0, the current git tree should be able to read this FS by using the second copy of the metadata.

-chris

#2 lore raw

I'm on kernel 2.6.35

I can't remember if i used -m raid0.
I think i just used "mkfs.btrfs /dev/sda" then "btrfs device add /dev/sdb" and same for sdc.
I am sure that i didn't explicitly use -m raid1 or raid10. Is there a way that i can check this ?

If i do have raid0 for both metadata and data is there anything i can d=
o ?
I've been looking at the source but haven't got my head around it yet.

What whould happen if i just ignore/bypass the transid error?

The error:

[265889.197279] device fsid 734a485d12c77872-
9b0b5aa408670db4 devid 3 transid 39651 /dev/sda
[265889.198266] btrfs: use compression
[265889.647817] parent transid verify failed on 2721514774528 wanted
39651 found 39649
[265889.672632] btrfs: open_ctree failed

Or could i update the metadata to want 39649 ?

Thanks again!

On Thu, Dec 2, 2010 at 5:21 PM, Chris Mason <[email protected]> wr= ote:

Quoted 6 lines

Excerpts from Tommy Jonsson's message of 2010-12-01 06:00:56 -0500:

Quoted 4 lines

Hi folks!

Been using btrfs for quite a while now, worked great until now. Got power-loss on my machine and now i have the "parent transid ver=

ify

Quoted 8 lines
Quoted 8 lines

failed on X wanted X found X" problem.
So I can't get it to mount.

My btrfs is spread over sda (2tb), sdc(2tb), sdd(1tb).

Is this something that an offline fsck could fix ?
If so is the fsck-util being developed ?
Is there a way to mount the FS in a read-only mode or something to =

rescue

Quoted 4 lines
Quoted 1 line

the data ?

Which kernel are you on? =A0Unless you formatted with -m raid0, the current git tree should be able to read this FS by using the second c=

opy

Quoted 3 lines

of the metadata.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw

Excerpts from Tommy Jonsson's message of 2010-12-02 16:45:39 -0500:

Quoted 5 lines

I can't remember if i used -m raid0.
I think i just used "mkfs.btrfs /dev/sda" then "btrfs device add /dev/sdb" and same for sdc.
I am sure that i didn't explicitly use -m raid1 or raid10.
Is there a way that i can check this ?

The defaults will maintain raid1 as you add more drives. We can check it with btrfs-debug-tree from the git repository. But, more below.

Quoted 7 lines

If i do have raid0 for both metadata and data is there anything i can do ? I've been looking at the source but haven't got my head around it yet.

What whould happen if i just ignore/bypass the transid error?

The error:

Quoted 8 lines
[265889.197279] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 3
transid 39651 /dev/sda
[265889.198266] btrfs: use compression
[265889.647817] parent transid verify failed on 2721514774528 wanted 39651
found 39649
[265889.672632] btrfs: open_ctree failed

Or could i update the metadata to want 39649 ?

The first thing I would try is:

git pull git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. Just let me know.

-chris

#5 lore raw
$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' =
failed.
Aborted
$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' =
failed.
Aborted

-tommy

On Thu, Dec 2, 2010 at 10:50 PM, Chris Mason <[email protected]> w= rote:

Quoted 3 lines

Excerpts from Tommy Jonsson's message of 2010-12-02 16:45:39 -0500:

Quoted 2 lines

I can't remember if i used -m raid0.
I think i just used "mkfs.btrfs /dev/sda" then "btrfs device add /de=

v/sdb"

Quoted 5 lines
Quoted 3 lines

and same for sdc.
I am sure that i didn't explicitly use -m raid1 or raid10. Is there a way that i can check this ?

The defaults will maintain raid1 as you add more drives. =A0We can ch=

eck

Quoted 4 lines

it with btrfs-debug-tree from the git repository. =A0But, more below.

Quoted 2 lines

If i do have raid0 for both metadata and data is there anything i ca=

n do ?

Quoted 1 line
Quoted 1 line

I've been looking at the source but haven't got my head around it ye=

t.

Quoted 5 lines
Quoted 5 lines

What whould happen if i just ignore/bypass the transid error?

The error:

[265889.197279] device fsid 734a485d12c77872-9b0b5aa408670db4 devid =

3

Quoted 3 lines
Quoted 3 lines

transid 39651 /dev/sda

[265889.198266] btrfs: use compression
[265889.647817] parent transid verify failed on 2721514774528 wanted=

39651

Quoted 8 lines
Quoted 4 lines

found 39649

[265889.672632] btrfs: open_ctree failed

Or could i update the metadata to want 39649 ?

The first thing I would try is:

git pull git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-pr=

ogs-unstable.git

Quoted 7 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. =A0Jus=

t let

Quoted 4 lines

me know.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#6 lore raw

Tried "btrfs-debug-tree /dev/sda" and "btrfs-debug-tree -e /dev/sda" :
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfs-debug-tree: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.

dmesg said:

[268375.903581] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 2
transid 39650 /dev/sdd
[268375.904241] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 1
transid 39651 /dev/sdc
[268375.904526] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 3

transid 39651 /dev/sda

-tommy

On Thu, Dec 2, 2010 at 10:59 PM, Tommy Jonsson <[email protected]> wrot= e:

Quoted 3 lines
$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 3964=

9

Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)=

' failed.

Quoted 5 lines

Aborted

$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 3964=

9

Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)=

' failed.

Quoted 6 lines

Aborted

-tommy

On Thu, Dec 2, 2010 at 10:50 PM, Chris Mason <[email protected]>=

Quoted 3 lines · wrote:
Quoted 3 lines

Excerpts from Tommy Jonsson's message of 2010-12-02 16:45:39 -0500:

Quoted 2 lines

I can't remember if i used -m raid0.
I think i just used "mkfs.btrfs /dev/sda" then "btrfs device add /d=

ev/sdb"

Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

and same for sdc.
I am sure that i didn't explicitly use -m raid1 or raid10. Is there a way that i can check this ?

The defaults will maintain raid1 as you add more drives. =A0We can c=

heck

Quoted 1 line
Quoted 1 line

it with btrfs-debug-tree from the git repository. =A0But, more below=

=2E

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

If i do have raid0 for both metadata and data is there anything i c=

an do ?

Quoted 1 line
Quoted 1 line
Quoted 1 line

I've been looking at the source but haven't got my head around it y=

et.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

What whould happen if i just ignore/bypass the transid error?

The error:

[265889.197279] device fsid 734a485d12c77872-9b0b5aa408670db4 devid=

3

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

transid 39651 /dev/sda

[265889.198266] btrfs: use compression
[265889.647817] parent transid verify failed on 2721514774528 wante=

d 39651

Quoted 8 lines
Quoted 8 lines
Quoted 4 lines

found 39649

[265889.672632] btrfs: open_ctree failed

Or could i update the metadata to want 39649 ?

The first thing I would try is:

git pull git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-p=

rogs-unstable.git

Quoted 7 lines
Quoted 7 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. =A0Ju=

st let

Quoted 5 lines
Quoted 4 lines

me know.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#7 lore raw
In reply to Chris Mason
Quoted 28 lines
Quoted 10 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. Just let me know.

-chris

$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.
Aborted
$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.
Aborted

Tried "btrfs-debug-tree /dev/sda" and "btrfs-debug-tree -e /dev/sda" :
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfs-debug-tree: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.

Quoted 4 lines

dmesg said:

[268375.903581] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 2 transid 39650 /dev/sdd
[268375.904241] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 1 transid 39651 /dev/sdc
[268375.904526] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 3 transid 39651 /dev/sda

Sorry to be a bother, but do you have any other suggestions ?

Thanks!

-tommy

#8 lore raw

Excerpts from Tommy Jonsson's message of 2010-12-08 15:07:58 -0500:

Quoted 28 lines
Quoted 28 lines
Quoted 10 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. Just let me know.

-chris

$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.
Aborted
$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.
Aborted

Tried "btrfs-debug-tree /dev/sda" and "btrfs-debug-tree -e /dev/sda" :
parent transid verify failed on 2721514774528 wanted 39651 found 39649
btrfs-debug-tree: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.

Quoted 6 lines
Quoted 4 lines

dmesg said:

[268375.903581] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 2 transid 39650 /dev/sdd
[268375.904241] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 1 transid 39651 /dev/sdc
[268375.904526] device fsid 734a485d12c77872-9b0b5aa408670db4 devid 3 transid 39651 /dev/sda

Sorry to be a bother, but do you have any other suggestions ?

Not a bother at all, I'm polishing off a version of fsck that I hope will be able to construct a good tree for you. It's my main priority right now and I hope to have something ready early Monday.

-chris

#9 lore raw
Quoted 7 lines

Excerpts from Tommy Jonsson's message of 2010-12-08 15:07:58 -0500:

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. =A0=

Just let

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 4 lines

me know.

-chris

$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 1 line
Quoted 1 line
Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->no=

de)' failed.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

Aborted

$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 1 line
Quoted 1 line
Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->no=

de)' failed.

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Aborted

Tried "btrfs-debug-tree /dev/sda" and "btrfs-debug-tree -e /dev/sd=

a" :

Quoted 1 line
Quoted 1 line
Quoted 1 line

parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

btrfs-debug-tree: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.

dmesg said:

[268375.903581] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 2 transid 39650 /dev/sdd

Quoted 1 line
Quoted 1 line
Quoted 1 line
[268375.904241] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 1 transid 39651 /dev/sdc

Quoted 1 line
Quoted 1 line
Quoted 1 line
[268375.904526] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 3 transid 39651 /dev/sda

Quoted 5 lines
Quoted 2 lines

Sorry to be a bother, but do you have any other suggestions ?

Not a bother at all, I'm polishing off a version of fsck that I hope will be able to construct a good tree for you. =A0It's my main priori=

ty

Quoted 4 lines

right now and I hope to have something ready early Monday.

-chris

Hi Chris.
Thanks for all your help. Any progress on the fsck ?
I pulled the latest btrfs-progs-unstable and recompiled, same output from all the commands (btrfsck -s / btrfs-debug-tree).

-tommy
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#10 lore raw
In reply to Chris Mason

On Thu, Dec 9, 2010 at 6:14 PM, Chris Mason <[email protected]> wr= ote:

Quoted 7 lines

Excerpts from Tommy Jonsson's message of 2010-12-08 15:07:58 -0500:

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. =A0=

Just let

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 4 lines

me know.

-chris

$ btrfsck -s 1 /dev/sda
using SB copy 1, bytenr 67108864
parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 1 line
Quoted 1 line
Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->no=

de)' failed.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

Aborted

$ btrfsck -s 2 /dev/sda
using SB copy 2, bytenr 274877906944
parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 1 line
Quoted 1 line
Quoted 1 line

btrfsck: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->no=

de)' failed.

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Aborted

Tried "btrfs-debug-tree /dev/sda" and "btrfs-debug-tree -e /dev/sd=

a" :

Quoted 1 line
Quoted 1 line
Quoted 1 line

parent transid verify failed on 2721514774528 wanted 39651 found 3=

9649

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

btrfs-debug-tree: disk-io.c:739: open_ctree_fd: Assertion `!(!tree_root->node)' failed.

dmesg said:

[268375.903581] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 2 transid 39650 /dev/sdd

Quoted 1 line
Quoted 1 line
Quoted 1 line
[268375.904241] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 1 transid 39651 /dev/sdc

Quoted 1 line
Quoted 1 line
Quoted 1 line
[268375.904526] device fsid 734a485d12c77872-9b0b5aa408670db4 devi=

d 3 transid 39651 /dev/sda

Quoted 5 lines
Quoted 2 lines

Sorry to be a bother, but do you have any other suggestions ?

Not a bother at all, I'm polishing off a version of fsck that I hope will be able to construct a good tree for you. =A0It's my main priori=

ty

Quoted 4 lines

right now and I hope to have something ready early Monday.

-chris

Hi again Chris.
Hope you survived Christmas and new year :]

Just wanted to check in and see how you are progressing on the btrfsck? Drop me a mail if you want me to test/debug anything.

-tommy
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#11 lore raw
In reply to Chris Mason
Quoted 9 lines · Chris Mason <chris.mason <at> oracle.com> writes:

[...]
Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. Just let me know.

Hello,

I get those "parent transid verify failed" errors too after a system failure.

# btrfsck -s 1 /dev/md0 
using SB copy 1, bytenr 67108864
found 1954912653312 bytes used err is 0
total csum bytes: 1892054684
total tree bytes: 3455627264
total fs tree bytes: 1082691584
btree space waste bytes: 584155173
file data blocks allocated: 12808940421120
 referenced 1933520879616
Btrfs v0.19-35-g1b444cd-dirty
# btrfsck -s 2 /dev/md0 
using SB copy 2, bytenr 274877906944
found 1954912653312 bytes used err is 0
-snip-

Both seem to work.
What would be the steps to get it mounted?

Thanks in advance.

~thomas

#12 lore raw

Excerpts from Tom Kuther's message of 2010-12-09 11:21:03 -0500:

Quoted 31 lines
Quoted 9 lines · Chris Mason <chris.mason <at> oracle.com> writes:

[...]
Build the latest tools, then:

btrfsck -s 1 /dev/xxx
btrfsck -s 2 /dev/xxx

If either of these work we have an easy way to get it mounted. Just let me know.

Hello,

I get those "parent transid verify failed" errors too after a system failure.

# btrfsck -s 1 /dev/md0 
using SB copy 1, bytenr 67108864
found 1954912653312 bytes used err is 0
total csum bytes: 1892054684
total tree bytes: 3455627264
total fs tree bytes: 1082691584
btree space waste bytes: 584155173
file data blocks allocated: 12808940421120
 referenced 1933520879616
Btrfs v0.19-35-g1b444cd-dirty
# btrfsck -s 2 /dev/md0 
using SB copy 2, bytenr 274877906944
found 1954912653312 bytes used err is 0
-snip-
Quoted 2 lines

Both seem to work.
What would be the steps to get it mounted?

If btrfsck -s is able to find a good super, I've setup a tool that will copy the good super over into the default super. It is currently sitting in the next branch of the btrfs-progs-unstable repo.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git next

(or git pull into your existing checkout)

Then

make btrfs-select-super
./btrfs-selects-super -s 1 /dev/xxx

After this you'll want to do a full backup and make sure things are working properly.

-chris

#13 lore raw
Quoted 14 lines · On Fr, 10.12.10 15:11 Chris Mason <[email protected]> wrote:
Quoted 1 line

What would be the steps to get it mounted?

If btrfsck -s is able to find a good super, I've setup a tool that will copy the good super over into the default super. It is currently sitting in the next branch of the btrfs-progs-unstable repo.

git clone
git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git
next

(or git pull into your existing checkout)

Then

Quoted 7 lines

make btrfs-select-super
./btrfs-selects-super -s 1 /dev/xxx

After this you'll want to do a full backup and make sure things are working properly.

-chris

This worked fine. I was able to mount and completely read it. The volume seems healthy and is fully usable so far.

Thanks a lot!

~thomas