I''m running FreeBSD 8.1 with ZFS v15. Recently some time after moving
my mirrored pool from one device to another system crashes. From that time on
zpool cannot be used/imported - any attempt fails with:
solaris assert: sm->space + size <= sm->size, file:
/usr/src/sys/moules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c,
line: 93
Debugging reveals that:
sm->sm_space = 2147483648
size = 34304
sm->sm_size = 2147483648
Probably space map is trashed badly but I can''t understand how to skip
this assertion to make pool at least readable. FreeBSD zfsboot manages to load
kernel and modules off the pool, but the system hangs whenever original zfs
tries to open the pool. Error is persistent and shows up in:
* MilaX - hangs;
* OpenSolaris - hangs;
* SystemRescueCD (zfs-fuse v23) - drops core with same message;
* NexentsStore - ignores pool.
What I am looking for is:
* any information on how I can bring this pool to readonly state (tweaking
source, making spacemap appear correct/full);
* any pointers to tech specifications of how name/value pair list on-disk
structure should be processed as it takes a lot time for me to understand how
this should work rummaging through all the code involved.
--
This message posted from opensolaris.org