Project

General

Profile

Bug #4504

traverse_visitbp: visit DMU_GROUPUSED_OBJECT before DMU_USERUSED_OBJECT

Added by Christopher Siden over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2014-01-17
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

assertion failed: zb->zb_object <= td->td_resume->zb_object (0xffffffffffffffff 
<= 0xfffffffffffffffe), file: ../../common/fs/zfs/dmu_traverse.c, line: 166

ffffff0008f32440 genunix:strlog+0 ()
ffffff0008f32490 zfs:resume_skip_check+d8 ()
ffffff0008f32570 zfs:traverse_visitbp+57 ()
ffffff0008f32600 zfs:traverse_dnode+8b ()
ffffff0008f326e0 zfs:traverse_visitbp+805 ()
ffffff0008f32820 zfs:traverse_impl+1bf ()
ffffff0008f32880 zfs:traverse_dataset_destroyed+49 ()
ffffff0008f32a00 zfs:bptree_iterate+1b9 ()
ffffff0008f32a70 zfs:dsl_scan_sync+401 ()
ffffff0008f32b50 zfs:spa_sync+344 ()
ffffff0008f32c20 zfs:txg_sync_thread+260 ()
ffffff0008f32c30 unix:thread_start+8 ()

The problem is that traverse_visitbp() visits the USERUSED and GROUPUSED
objects in the wrong order; they should be reversed, because GROUPUSED <
USERUSED.

Typically there will be just one block in the GROUPUSED object, so it's pretty
unlikely to pause on exactly this block.  But I think you'd hit this every time
we do.

The problem can be reproduced by setting zfs_free_max_blocks to 1 and then
destroying a filesystem.

History

#1

Updated by Christopher Siden over 5 years ago

  • Status changed from In Progress to Closed
commit 48f1b90e649df6b08a86b1f8128c2bdf4a617a5c
Author: Matthew Ahrens <mahrens@delphix.com>
Date:   Mon Jan 27 10:32:34 2014

    4504 traverse_visitbp: visit DMU_GROUPUSED_OBJECT before DMU_USERUSED_OBJECT
    Reviewed by: Christopher Siden <christopher.siden@delphix.com>
    Reviewed by: George Wilson <george.wilson@delphix.com>
    Reviewed by: Andriy Gapon <andriy.gapon@hybridcluster.com>
    Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com>
    Approved by: Robert Mustacchi <rm@joyent.com>

Also available in: Atom PDF