[zfs-code] Looking for confirmation.

Matthew Ahrens
Tue, 29 Aug 2006 17:38:31 -0000

Pawel Jakub Dawidek wrote:
> Hi.
>
> I''ve almost all file system functions working.
>
> I started to run some heavy file system regression tests. They work. fsx
> wasn''t able to break my port, but the test you can find here:
>
> 	http://people.freebsd.org/~kan/fsstress.tar.gz
>
> broke it. My kernel panics on this assertion (zfs_dir.c):
>
> 749:	mutex_exit(&dzp->z_lock);
> 750:
> 751:	error = zap_remove(zp->z_zfsvfs->z_os, dzp->z_id,
dl->dl_name, tx);
> 752->	ASSERT(error == 0);
> 753:
> 754:	if (reaped_ptr != NULL)
>
> zap_remove() returns ENOENT, which is returned because mze_find()
> returns NULL. I changed this assertion to printf and I don''t see
any
> other problems with this test-suite - ZFS is stable.

Did you figure out what was causing this?  One thing that you could do
to try an narrow down the bug is make sure that the microzap''s in-core
avl tree (zap_avl) agrees with the on-disk structure (mz_chunk[]).  If
the entry is missing in both, then the zap is probably working right and
the problem is likely in the zpl.  Otherwise it''s definitely in the
zap.

--matt