Project

General

Profile

Bug #2871

hammer2 kernel crash

Added by arcade@b1t.name almost 2 years ago. Updated almost 2 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
VFS subsystem
Target version:
-
Start date:
12/22/2015
Due date:
% Done:

0%


Description

One fine day I was doing many things simultaneously when:

panic: assertion "pbase != 0 && ((lbase + lsize - 1) & pmask) == pbase" failed in hammer2_io_getblk at /usr/src/sys/vfs/hammer2/hammer2_io.c:95

Trace beginning at frame 0xffffffe0cfa077b0
panic() at panic+0x25f 0xffffffff8027bb8e
panic() at panic+0x25f 0xffffffff8027bb8e
hammer2_io_getblk() at hammer2_io_getblk+0x9f 0xffffffff81f57e78
_hammer2_io_new() at _hammer2_io_new+0x47 0xffffffff81f586ea
hammer2_io_newnz() at hammer2_io_newnz+0xf 0xffffffff81f58f18
hammer2_strategy_xop_write() at hammer2_strategy_xop_write+0x823 0xffffffff81f49c21

When system rebooted it just failed again with the same trace during `savecore`. So I did bulkfree from single user:

Dec 22 15:30:59 probe kernel: bulkfree pass statistics (100.00% storage processed):
Dec 22 15:30:59 probe kernel: transition->free 121833
Dec 22 15:30:59 probe kernel: transition->staged 3567305
Dec 22 15:30:59 probe kernel: ERR(00)->allocated 0
Dec 22 15:30:59 probe kernel: ERR(01)->allocated 0
Dec 22 15:30:59 probe kernel: staged->allocated 0
Dec 22 15:30:59 probe kernel: ~2MB segs cleaned 261
Dec 22 15:30:59 probe kernel: linear adjusts 354
Dec 22 15:30:59 probe kernel: dedup factor 31042

After that system became stable again.

History

#1 Updated by arcade@b1t.name almost 2 years ago

Well... it's dead now. Each time I try to write anything or doing a bulkfree results in:

chain 00000005363c840a.01 meth=21 CHECK FAIL 26c22630 (flags=00144002)
panic: assertion "parent->error == 0" failed in hammer2_chain_scan at /usr/src/sys/vfs/hammer2/hammer2_chain.c:2258
cpuid = 3
Trace beginning at frame 0xffffffe0f2a93788
panic() at panic+0x25f 0xffffffff8027bb8e
panic() at panic+0x25f 0xffffffff8027bb8e
hammer2_chain_scan() at hammer2_chain_scan+0xf1 0xffffffff81f4dba8
hammer2_bulk_scan() at hammer2_bulk_scan+0x1d2 0xffffffff81f55bd1
hammer2_bulk_scan() at hammer2_bulk_scan+0x184 0xffffffff81f55b83
hammer2_bulk_scan() at hammer2_bulk_scan+0x184 0xffffffff81f55b83
Debugger("panic")

So to summarize I was sitting on hammer2 for more then two weeks and that was fun. It doesn't fluctuates comparing to hammer, it's just becomes good.

However since I created hammer2 fs it's total size was constantly shrinking. It started from 131G and got down to 77G (double of my available data).

I'll try to test hammer2 again next time any comparably big patch would hit the tree.

Also available in: Atom PDF