From owner-freebsd-bugs@FreeBSD.ORG Thu Jun 9 14:20:08 2011 Return-Path: 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 EAA3A1065670 for ; Thu, 9 Jun 2011 14:20:08 +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 ACDA08FC12 for ; Thu, 9 Jun 2011 14:20:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p59EK8cE094752 for ; Thu, 9 Jun 2011 14:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p59EK8Xd094751; Thu, 9 Jun 2011 14:20:08 GMT (envelope-from gnats) Resent-Date: Thu, 9 Jun 2011 14:20:08 GMT Resent-Message-Id: <201106091420.p59EK8Xd094751@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, Martin Matuska Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4173A106564A for ; Thu, 9 Jun 2011 14:10:50 +0000 (UTC) (envelope-from mm@mail.vx.sk) Received: from mail.vx.sk (mail.vx.sk [IPv6:2a01:4f8:100:1043::3]) by mx1.freebsd.org (Postfix) with ESMTP id 9B8038FC08 for ; Thu, 9 Jun 2011 14:10:49 +0000 (UTC) Received: from core.vx.sk (localhost [127.0.0.1]) by mail.vx.sk (Postfix) with ESMTP id 5F8A6175C1F for ; Thu, 9 Jun 2011 16:10:48 +0200 (CEST) Received: from mail.vx.sk ([127.0.0.1]) by core.vx.sk (mail.vx.sk [127.0.0.1]) (amavisd-new, port 10024) with LMTP id eqy42TrLpHtm for ; Thu, 9 Jun 2011 16:10:46 +0200 (CEST) Received: by mail.vx.sk (Postfix, from userid 1001) id 6FC2F175C1A; Thu, 9 Jun 2011 16:10:45 +0200 (CEST) Message-Id: <20110609141046.6FC2F175C1A@mail.vx.sk> Date: Thu, 9 Jun 2011 16:10:45 +0200 (CEST) From: Martin Matuska To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: kern/157728: zfs (v28) incremental receive may leave behind temporary clones X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Martin Matuska List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jun 2011 14:20:09 -0000 >Number: 157728 >Category: kern >Synopsis: zfs (v28) incremental receive may leave behind temporary clones >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: Thu Jun 09 14:20:08 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Martin Matuska >Release: FreeBSD 8.2-STABLE amd64 >Organization: >Environment: System: FreeBSD 8.2-STABLE #2 r222851M: Wed Jun 8 07:24:58 CEST 2011 >Description: zfs receive (v28) may leave behind temporary clones if doing a parallel zfs list on an incremental snapshot being received. The temporary clone gets properly removed in Nexenta and OpenIndiana (but not immediately after zfs receive finishes - there is a small delay). In FreeBSD, something prevents the process/thread responsible for removing the clone doing its job. >How-To-Repeat: Script: #!/bin/sh zpool destroy test if [ ! -f "/tmp/testfile" ]; then dd if=/dev/zero of=/tmp/testfile bs=1M count=250 fi zpool create test /tmp/testfile zfs create test/d1 #dd if=/dev/zero of=/test/d1/file1 bs=1M count=100 zfs snapshot test/d1@s1 #rm /test/d1/file1 zfs send test/d1@s1 | zfs recv test/d2 zfs snapshot test/d1@s2 ( sleep 1; zfs send -I @s1 test/d1@s2 | zfs recv test/d2) & while test "$OK" != "1"; do zfs list -H test/d2@s2 >/dev/null 2>/dev/null && OK=1 done zfs destroy test/d2@s1 zdb -d test | grep % Result: cannot destroy 'test/d2@s1': dataset already exists Could not open test/d2/%s2, error 16 >Fix: For now only a workaround: - do not do zfs list or - destroy temporary clone afterwards (zfs destroy test/d2/%s2) >Release-Note: >Audit-Trail: >Unformatted: