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