[CRASH] ZFS recv (fwd)/CURRENT

Martin Matuska mm at FreeBSD.org
Fri Apr 5 16:29:19 UTC 2013


You can use the attached patch, it should fix the problem.
We are still waiting for code review and a final solution by illumos,
maybe I will commit this preliminary (or final) fix to head.

mm

On 5.4.2013 16:49, Larry Rosenman wrote:
> On 2013-04-02 16:26, Martin Matuska wrote:
>> On 1. 4. 2013 22:33, Martin Matuska wrote:
>>> This error seems to be limited to sending deduplicated streams. Does
>>> sending without "-D" work ok? This might be a vendor error as well.
>>>
>>> On 1.4.2013 20:05, Larry Rosenman wrote:
>>>> Re-Sending.  Any ideas, guys/gals?
>>>>
>>>> This really gets in my way.
>>>>
>> This may be also related to:
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=176978
> Taking off -D does get around the panic.
>
> What information can I provide to help fix it?
>
> I *CAN* provide access to both sides via SSH.
>
>


-- 
Martin Matuska
FreeBSD committer
http://blog.vx.sk

-------------- next part --------------
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c	(revision 249165)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c	(working copy)
@@ -990,6 +990,7 @@ free_guid_map_onexit(void *arg)
 
 	while ((gmep = avl_destroy_nodes(ca, &cookie)) != NULL) {
 		dsl_dataset_long_rele(gmep->gme_ds, gmep);
+		dsl_dataset_rele(gmep->gme_ds, FTAG);
 		kmem_free(gmep, sizeof (guid_map_entry_t));
 	}
 	avl_destroy(ca);
@@ -1698,7 +1699,6 @@ add_ds_to_guidmap(const char *name, avl_tree_t *gu
 		gmep->gme_ds = snapds;
 		avl_add(guid_map, gmep);
 		dsl_dataset_long_hold(snapds, gmep);
-		dsl_dataset_rele(snapds, FTAG);
 	}
 
 	dsl_pool_rele(dp, FTAG);


More information about the freebsd-fs mailing list