Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Oct 2012 09:45:14 -0700
From:      Freddie Cash <fjwcash@gmail.com>
To:        David Wimsey <david@wimsey.us>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Deadlock on zfs import
Message-ID:  <CAOjFWZ45jLDahejzNSy8qHP=eVNR-oNBqXc56c5x12XODm8CYg@mail.gmail.com>
In-Reply-To: <074F3CC1-E29F-4552-840F-A38FDDCC7E76@wimsey.us>
References:  <074F3CC1-E29F-4552-840F-A38FDDCC7E76@wimsey.us>

next in thread | previous in thread | raw e-mail | index | archive | help
If you boot to single-user mode, disable the auto-import of pools
(zfs_enable=no in rc.conf), boot to multi-user, start top in one
terminal, and then manually import the pool in another window, and
watch top out, does it run out of RAM (putting everything into wired)?

You're running dedupe with only 4 GB of RAM, with pools over 90% full.
 My guess is that it's running out of ARC space trying to import the
pool and load the DDT (dedupe table).  The above test will show that
to be the case (wired memory goes to 100% and system locks up).

If that's the case, the only solution I've found is to stick more RAM
into the box.

If the cause of the "can't import due to running out of ARC" is that
you were destroying a ZFS filesystem that had dedupe enabled, then you
can try upgrading to 9-STABLE and add the "zfs features" patch that
was posted here last week.  That will run the "zfs destroy" process in
the background and allow the pool to import.  It worked for us ("zfs
destroy" of a 1 TB filesystem locked up our pool; but the background
destroy feature let us work around it for importing).

-- 
Freddie Cash
fjwcash@gmail.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOjFWZ45jLDahejzNSy8qHP=eVNR-oNBqXc56c5x12XODm8CYg>