From owner-freebsd-bugs@FreeBSD.ORG  Sun Jan 10 08:30:05 2010
Return-Path: <owner-freebsd-bugs@FreeBSD.ORG>
Delivered-To: freebsd-bugs@hub.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3163D1065670
	for <freebsd-bugs@hub.freebsd.org>;
	Sun, 10 Jan 2010 08:30:05 +0000 (UTC)
	(envelope-from gnats@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org
	[IPv6:2001:4f8:fff6::28])
	by mx1.freebsd.org (Postfix) with ESMTP id EA16A8FC0A
	for <freebsd-bugs@hub.freebsd.org>;
	Sun, 10 Jan 2010 08:30:04 +0000 (UTC)
Received: from freefall.freebsd.org (localhost [127.0.0.1])
	by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id o0A8U4j9072643
	for <freebsd-bugs@freefall.freebsd.org>; Sun, 10 Jan 2010 08:30:04 GMT
	(envelope-from gnats@freefall.freebsd.org)
Received: (from gnats@localhost)
	by freefall.freebsd.org (8.14.3/8.14.3/Submit) id o0A8U4gu072642;
	Sun, 10 Jan 2010 08:30:04 GMT (envelope-from gnats)
Resent-Date: Sun, 10 Jan 2010 08:30:04 GMT
Resent-Message-Id: <201001100830.o0A8U4gu072642@freefall.freebsd.org>
Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer)
Resent-To: freebsd-bugs@FreeBSD.org
Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alt <wtfcrap@mail.ru>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 893331065670
	for <freebsd-gnats-submit@FreeBSD.org>;
	Sun, 10 Jan 2010 08:24:48 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 799288FC08
	for <freebsd-gnats-submit@FreeBSD.org>;
	Sun, 10 Jan 2010 08:24:48 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o0A8OlQO036074
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 10 Jan 2010 08:24:47 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o0A8Ol14036072;
	Sun, 10 Jan 2010 08:24:47 GMT (envelope-from nobody)
Message-Id: <201001100824.o0A8Ol14036072@www.freebsd.org>
Date: Sun, 10 Jan 2010 08:24:47 GMT
From: Alt <wtfcrap@mail.ru>
To: freebsd-gnats-submit@FreeBSD.org
X-Send-Pr-Version: www-3.1
Cc: 
Subject: kern/142563: ioctl freeze in zpool
X-BeenThere: freebsd-bugs@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Bug reports <freebsd-bugs.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>,
	<mailto:freebsd-bugs-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bugs>
List-Post: <mailto:freebsd-bugs@freebsd.org>
List-Help: <mailto:freebsd-bugs-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>,
	<mailto:freebsd-bugs-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2010 08:30:05 -0000


>Number:         142563
>Category:       kern
>Synopsis:       ioctl freeze in zpool
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 10 08:30:04 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Alt
>Release:        9-CURRENT
>Organization:
>Environment:
FreeBSD  9.0-CURRENT FreeBSD 9.0-CURRENT #0 r201894: Sun Jan 10 01:53:08 MSK 2010     root@:/usr/obj/root/current/sys/GENERIC  i386
>Description:
zfs's zpool utility freezes on ioctl call on rare situtions:
# zpool status
Jan 10 10:16:33  root: ZFS: vdev failure, zpool=test type=vdev.bad_label
Jan 10 10:16:33  root: ZFS: vdev failure, zpool=test type=vdev.bad_label

Issue leads to zfs pools become uncontrollable, since zpool's commands status,import,export,destroy not working now. I tried to trackdown issue - it leads to kernel ioctl call (i dont have any experience with kernel dev):

(gdb) disas
Dump of assembler code for function ioctl:
0x2828a740 <ioctl+0>:   mov    $0x36,%eax
0x2828a745 <ioctl+5>:   int    $0x80
0x2828a747 <ioctl+7>:   jb     0x2828a72c <select+12>
0x2828a749 <ioctl+9>:   ret
0x2828a74a <ioctl+10>:  nop
0x2828a74b <ioctl+11>:  nop
0x2828a74c <ioctl+12>:  push   %ebx
0x2828a74d <ioctl+13>:  call   0x2828a752 <ioctl+18>
0x2828a752 <ioctl+18>:  pop    %ebx
0x2828a753 <ioctl+19>:  add    $0x15b36,%ebx
0x2828a759 <ioctl+25>:  jmp    0x2817fc14 <_init+3940>
0x2828a75e <ioctl+30>:  mov    %esi,%esi
End of assembler dump.
(gdb) stepi
0x2828a745      3       RSYSCALL(ioctl)
(gdb)
Jan 10 10:16:33  root: ZFS: vdev failure, zpool=test type=vdev.bad_label
Jan 10 10:16:33  root: ZFS: vdev failure, zpool=test type=vdev.bad_label

(now its freezed and dont react ctrl-c, sigterm, sigkill - any signals)
>How-To-Repeat:
Make zfs raidz1 with 4+ disks.
Shutdown system. Replace 1 disk with new one and remove other. So, we removed 2 disks from pool and its broken. Boot and command `zpool status` - it freezes. Need to say it take effect with other commands: import/export/destroy, so actually pools become uncontrollable..
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted: