ZFS deadlock ?

Erik Osterholm freebsd-lists-erik at erikosterholm.org
Fri Nov 9 16:05:47 PST 2007


On Fri, Nov 09, 2007 at 11:28:27PM +0100, Henri Hennebert wrote:
> Richard Arends wrote:
> >On Fri, Nov 09, 2007 at 09:35:59PM +0100, Henri Hennebert wrote:
> >
> >>>This won't start the scrubs at the same time, but after each other. And
> >>>the second will only start if the first one not fails (exitcode == 0)
> >>>
> >>Not at all, the scrub is asynchronious, I'm sure of it
> >
> >Running 2 commands seperated by && will not run at the same time. Scrub
> >could be asynchronious, i don't know, but that has nothing to do with the
> >way you are running it.
> >
> >See: echo "sleep 1" && time sleep 2 && echo "sleep 2" && time sleep 2
> >and: ls -l /notfound && echo yes
> 
> Per the man page, zpool scrub *begin* a scrub witch go on in background, 
> so two scrubs are running simustaneously on 2 different pools.
> 
> Henri

Henri is 100% correct.  zpool scrub kicks off a scrub which occurs in
the background.  I'm not sure I like this behavior that much, but it's
not like it's my call :)

lothos# zpool list
NAME                    SIZE    USED   AVAIL    CAP  HEALTH
ALTROOT
tank                   1.81T    368G   1.45T    19%  ONLINE     -

lothos# time sh -c "zpool scrub tank && echo Done\?"
Done?
0.000u 0.010s 0:04.35 0.2%      116+152k 14+0io 8pf+0w

lothos# zpool status tank
  pool: tank
 state: ONLINE
 scrub: scrub in progress, 3.97% done, 0h40m to go
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad4     ONLINE       0     0     0
            ad5     ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad7     ONLINE       0     0     0

errors: No known data errors

Erik


More information about the freebsd-stable mailing list