Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 May 2010 03:40:38 +0400
From:      Alex Bakhtin <alex.bakhtin@gmail.com>
To:        <pjd@freebsd.org>
Cc:        freebsd-fs@freebsd.org, bug-followup@freebsd.org
Subject:   RE: kern/145339: [zfs] deadlock after detaching block device from raidz pool
Message-ID:  <4bf86b77.0c3fdf0a.45ff.4f6b@mx.google.com>
In-Reply-To: <AANLkTikuzsafif7z7DbNL9PrJu4Gdcc8UucN3U3LSe5i@mail.gmail.com>
References:  <201005130934.o4D9YiJL039462@freefall.freebsd.org> <AANLkTikuzsafif7z7DbNL9PrJu4Gdcc8UucN3U3LSe5i@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Pawel,

	I made some additional testing. Now I'm 95 percent sure that this
deadlock was introduced by this patch. I tried patched and non-patched
GENERIC kernel. It seems that it is harder to reproduce this deadlock on
raidz1 than raidz2. With raidz2 I tried to detach and reattach back two =
disk
at the same time, and deadlock is 100% reproducible on patched kernel =
but I
can't reproduce it on non-patched kernel.

	How to reproduce:

1. Create raiz2 pool
2. Detach two devices while the pool is idle.
3. Start writing to the pool (dd if=3D/dev/zero of=3D/storage/test =
bs=3D1m)
4. atacontrol detach/attach to have disks back.
5. Online two disks at the same time (zpool online storage adX adY).
6. Wait some time (in my testing - several seconds, less than one =
minute) -
all disk activity would be stopped. After that it's impossible to abort
zpool online or dd command. Also it's impossible to reboot without
hard-reset.

	If you need core from deadlocked kernel please let me know.

Alex Bakhtin

-----Original Message-----
From: Alex Bakhtin [mailto:alex.bakhtin@gmail.com]=20
Sent: Monday, May 17, 2010 7:37 PM
To: pjd@freebsd.org
Cc: freebsd-fs@freebsd.org; bug-followup@freebsd.org
Subject: Re: kern/145339: [zfs] deadlock after detaching block device =
from
raidz pool

Pawel,

   I tested your patch in the following zfs configuration (all on
5x2TB WD20EARS drivers):

1. raidz1 on top of physical disks.
2. raidz1 on top of geli
3. raidz2 on top of physical disks.

   In all three cases it seems that the problem was fixed - I can't
crash zfs in vdev_geom when unplugging the disk.

   Unfortunately, 3 times I got a deadlock in zfs after plugging
vdevs back under load. It happens several seconds after zpool online
command. I'm not 100 percent sure that deadlocks are related to this
patch, but... I'm going to make some additional testing with patched
and not patched kernels.

2010/5/13  <pjd@freebsd.org>:
> Synopsis: [zfs] deadlock after detaching block device from raidz pool
>
> State-Changed-From-To: open->feedback
> State-Changed-By: pjd
> State-Changed-When: czw 13 maj 2010 09:33:20 UTC
> State-Changed-Why:
> Could you try this patch:
>
> =9A =9A =9A =
=9Ahttp://people.freebsd.org/~pjd/patches/vdev_geom.c.3.patch
>
> It is against most recent HEAD. If it is rejected on 8-STABLE, just =
grab
> entire vdev_geom.c from HEAD and patch this.
>
>
> Responsible-Changed-From-To: freebsd-fs->pjd
> Responsible-Changed-By: pjd
> Responsible-Changed-When: czw 13 maj 2010 09:33:20 UTC
> Responsible-Changed-Why:
> I'll take this one.
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=3D145339
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4bf86b77.0c3fdf0a.45ff.4f6b>