From owner-freebsd-fs@FreeBSD.ORG Mon Jan 10 22:35:52 2011 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 004AB106564A for ; Mon, 10 Jan 2011 22:35:51 +0000 (UTC) (envelope-from stef@memberwebs.com) Received: from thewalter.net (thewalter.net [94.75.203.97]) by mx1.freebsd.org (Postfix) with ESMTP id 93C1D8FC08 for ; Mon, 10 Jan 2011 22:35:51 +0000 (UTC) Received: from [172.17.182.217] (adsl-75-12-188-41.dsl.pltn13.sbcglobal.net [75.12.188.41]) by thewalter.net (Postfix) with ESMTPA id 2AC4D36122 for ; Mon, 10 Jan 2011 22:35:49 +0000 (UTC) Message-ID: <4D2B89C4.8080300@memberwebs.com> Date: Mon, 10 Jan 2011 14:35:48 -0800 From: Stef Walter User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 MIME-Version: 1.0 To: freebsd-fs@freebsd.org References: <4D2B8616.4000503@memberwebs.com> In-Reply-To: <4D2B8616.4000503@memberwebs.com> Content-Type: multipart/mixed; boundary="------------080206050804010103080703" Subject: Re: 'zfs list' does abort in make_dataset_handle X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Jan 2011 22:35:52 -0000 This is a multi-part message in MIME format. --------------080206050804010103080703 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 01/10/2011 02:20 PM, Stef Walter wrote: > After a failed zfs receive, zfs list now aborts in make_dataset_handle() > in libzfs.so.2. The following patch suppresses the problem, and may give a clear indication of how the problem manifests. Cheers, Stef --------------080206050804010103080703 Content-Type: text/x-patch; name="zfs-abort-bad-head-type.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="zfs-abort-bad-head-type.patch" --- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c.orig 2011-01-10 22:29:45.000000000 +0000 +++ cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c 2011-01-10 22:32:11.000000000 +0000 @@ -454,6 +454,10 @@ else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) zhp->zfs_head_type = ZFS_TYPE_FILESYSTEM; - else - abort(); + else { + fprintf (stderr, "WARNING: bad head type: %s\n", zhp->zfs_name); + free(zhp); + errno = ENOENT; + return (NULL); + } if (zhp->zfs_dmustats.dds_is_snapshot) --------------080206050804010103080703--