We have a disk array behind two external SATA port multipliers (four
disks on each multiplier) which has been running btrfs (RAID 1 for
both data and metadata). Unfortunately, earlier today it seems one of
the SATA cables came loose, resulting in the kernel (2.6.37)
eventually OOPSing although apparently not before writing quite a bit
of data. Upon reboot, I was met with the dreaded,
disk-io.c:741: open_ctree_fd: Assertion `!(!tree_root->node)''
failed.
Unfortunately any attempt to run any of the btrfs-progs utilities
(from git) met a similar end. There was recently a patch to try harder
in recovering from this problem posted to the list[1], although
unfortunately it is unable to find a root. Considering there are eight
disks in the array and only four were affected by the loose cable, I
find it very hard to believe there is no way to recover this volume.
Any suggestions at all would be greatly appreciated. Recovering this
data would mean a lot. Thanks,
- Ben
[1] https://patchwork.kernel.org/patch/506631/
[2] Output from patched btrfsck
$ sudo ./btrfsck /dev/sdj
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 7810207560462397294
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 6004222992565259776
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 5629534856563150433
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 2314885531594477088
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 13633814763508087371
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 13675223438066551223
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 8315161591618561071
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 13768406020965233321
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 102597697750990864
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 7205870954452514560
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 458752
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2254
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 18446744073709551615
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43884 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43884 than 43884, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43884 than 43884, skipping
warning: super #2 at bytenr 274877906944 has different contents!
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 7810207560462397294
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 6004222992565259776
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 5629534856563150433
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 2314885531594477088
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 13633814763508087371
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 13675223438066551223
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 8315161591618561071
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 13768406020965233321
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 102597697750990864
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 7205870954452514560
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 458752
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2254
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 0
trying potential super #2 at bytenr 274877906944
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 0
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 327680
trying potential super #1 at bytenr 67108864
misplaced block thinks it''s at 2747241352741333024
trying potential super #2 at bytenr 274877906944
misplaced block thinks it''s at 18446744073709551615
trying potential super #0 at bytenr 65536
misplaced block thinks it''s at 18446744073709551615
trying potential super #1 at bytenr 67108864
got only 0 bytes instead of 2859
trying potential super #0 at bytenr 65536
super #0 at bytenr 65536 has better generation 43887 than 0, using that
trying potential super #1 at bytenr 67108864
super #1 at bytenr 67108864 has same generation 43887 than 43887, skipping
warning: super #1 at bytenr 67108864 has different contents!
trying potential super #2 at bytenr 274877906944
super #2 at bytenr 274877906944 has same generation 43887 than 43887, skipping
warning: super #2 at bytenr 274877906944 has different contents!
start place mismatch, buf says 21037056 btrfs_hdr says 20971520
start place mismatch, buf says 21041152 btrfs_hdr says 20975616
start place mismatch, buf says 21045248 btrfs_hdr says 20979712
start place mismatch, buf says 21049344 btrfs_hdr says 20983808
start place mismatch, buf says 21053440 btrfs_hdr says 20987904
start place mismatch, buf says 21057536 btrfs_hdr says 20992000
start place mismatch, buf says 854739120128 btrfs_hdr says 854738923520
start place mismatch, buf says 854739120128 btrfs_hdr says 0
start place mismatch, buf says 854739120128 btrfs_hdr says 0
--
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