Project

General

Profile

Actions

Bug #2898

open

HAMMER panic

Added by pavalos almost 8 years ago. Updated over 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
04/06/2016
Due date:
% Done:

0%

Estimated time:

Description

panic: assertion "(RB_EMPTY(&ip->rec_tree) && (ip->flags & HAMMER_INODE_XDIRTY) == 0) || (!RB_EMPTY(&ip->rec_tree) && (ip->flags & HAMMER_INODE_XDIRTY) != 0)" failed in hammer_flush_inode_done at /usr/src/sys/vfs/hammer/hammer_inode.c:2577
cpuid = 0
Trace beginning at frame 0xffffffe78639e910
panic() at panic+0x261 0xffffffff802e31ee
panic() at panic+0x261 0xffffffff802e31ee
hammer_flush_inode_done() at hammer_flush_inode_done+0x111 0xffffffff80424e68
hammer_flusher_flush_inode() at hammer_flusher_flush_inode+0x7a 0xffffffff8041f24a
hammer_fls_rb_tree_RB_SCAN() at hammer_fls_rb_tree_RB_SCAN+0xfc 0xffffffff8041e39e
hammer_flusher_slave_thread() at hammer_flusher_slave_thread+0x7a 0xffffffff8041e4d2

DragonFly ylem.theshell.com 4.5-DEVELOPMENT DragonFly v4.5.0.681.g2e03c8-DEVELOPMENT #2: Sat Mar 19 15:37:05 PDT 2016 :/usr/obj/usr/src/sys/YLEM64 x86_64

It didn’t crash dump—any ideas?

Peter

Actions #1

Updated by tkusumi almost 8 years ago

i'm suspecting a possible race here, but need to look into more details.
no one has really touched related code since 4.4.

hammer_rel_mem_record()

412 if (record->flags & HAMMER_RECF_ONRBTREE) {
413 RB_REMOVE(hammer_rec_rb_tree,
414 &ip->rec_tree,
415 record);
416 record->flags &= ~HAMMER_RECF_ONRBTREE;
417 KKASSERT;
418 if (RB_EMPTY(&ip->rec_tree)) {
419 ip->flags &= ~HAMMER_INODE_XDIRTY;
420 ip->sync_flags &= ~HAMMER_INODE_XDIRTY;
421 }

Actions

Also available in: Atom PDF