panic: assertion: layer2->zone == zone in hammer_blockmap_free
Matthew Dillon
dillon at apollo.backplane.com
Sat Aug 2 20:50:13 PDT 2008
:> I am going to need some additional information from you. Please sync
:> your filesystem and then do the following:
:>
:> hammer -f <device> blockmap > textfile
:> hammer -f <device> -vvv show >> textfile
:>
:> And gzip and upload that to leaf.
:
:Done as ~y0netan1/crash/blockmap.gz.
:
:Cheers.
Excellent! This is great! Ok, here is the big-block blockmap entry:
4000000174800000 zone=9 app=8388608 free=8388480
Each big-block can hold 8MB (8388608 bytes). This one has 128 bytes
allocated out of it. From the B-Tree dump four inodes are allocated
out of that block, though, so it should have read 512 bytes
allocated (free=8388096).
I already see a pattern, and I'm hoping it will lead to the bug.
The LO field is 0002xxxx == PFS#2. The tids are create:delete...
notice that one has a delete_tid of 0, which means it is live.
The others have a non-zero delete_tid, those have been deleted.
We get a nice ctime too... the ctime is in microseconds. First, here
are the inode records:
G------ ELM 14 R obj=0000000000000001 key=0000000000000000
lo=00020001 rt=01 ot=01 <<<< top 16 bits
of LO is the
PFS id.
tids 000000010848ffbb:0000000000000000 <<<<< create:delete
dataoff=9000000174dda260/128 crc=149d91f4 <<<< dataoff
fills=z9:745=1%
size=0 nlinks=1 mode=01777 uflags=00000000
ctime=0004525a5174d38a pobjid=0000000000000000 obj_type=1
mtime=0004537db932151f
^^^^^^^^^^^^
time stamps
G------ ELM 15 R obj=0000000000000001 key=0000000000000000
lo=00020001 rt=01 ot=01
d tids 0000000108490171:0000000108490179 <<<< create:delete
dataoff=9000000174dda440/128 crc=761cd3d0
fills=z9:745=1%
size=0 nlinks=1 mode=00755 uflags=00000000
ctime=0004525b5cd8b43f pobjid=0000000000000000 obj_type=1
mtime=0004525b5cd8b43f
G------ ELM 22 R obj=0000000107e44a04 key=0000000000000000
lo=00020001 rt=01 ot=02
d tids 0000000108490169:0000000108490175
dataoff=9000000174dda2e0/128 crc=1861f98c
fills=z9:745=1%
size=0 nlinks=2 mode=00644 uflags=00000000
ctime=0004525b4031d815 pobjid=0000000000000001 obj_type=2
mtime=0004525b4031d815
G------ ELM 23 R obj=0000000107e44a05 key=0000000000000000
lo=00020001 rt=01 ot=07
d tids 000000010849016d:0000000108490175
dataoff=9000000174dda360/128 crc=c57654ef
fills=z9:745=1%
size=3 nlinks=1 mode=00755 uflags=00000000
ctime=0004525b40e6eaf6 pobjid=0000000000000001 obj_type=7
mtime=0004525b40e6eaf6
The converted ctimes are:
Fri Jul 18 23:09:33 2008
Sat Jul 19 00:24:20 2008
Sat Jul 19 00:16:19 2008
Sat Jul 19 00:16:31 2008
So the inodes related to this broken freemap block were all created
on Jul 18th and 19th. They are all root inodes for PFS #2.
This is very good news. It's either related to the cross-device link
bug that we fixed, or its related to the PFS root inode creation or
deletion code.
I will try to cross reference the data offsets against the rest of
the dump to see if there are any more freemap discrepancies.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Bugs
mailing list