> We have an E450 with 2 disks (c0t0d0 & c2t0d0) and all the file systems are
> mirrored using Solaris Volume Manager with logging turned on. To upgrade the
> OS, we detach the c2t0d0 submirrors, perform a Live Upgrade (LU) and

Do you writelock the submirrors before detach ?
Otherwise, that's explainable. Splitting submirrors in the middle of a
logging transaction can have bad sideeffects including a later panic
"freeing free block".

> luactivate the new BE. We have performed the above process multiple times
> without issues. After we boot into the new BE there is a necessity to mount
> the old BE file systems for reference purposes. Sometimes when we mount the
> regular slices (/dev/dsk/c0t0d0s*) it panics the system with "UFS panic free:
> freeing free block" message.
> 
> Here are my questions:
> 
> * Are we doing something illegal when we mount the regular slices 
(/dev/dsk/c0t0d0s*)?
> * Are the file system getting corrupted because of the metadevice and logging 
layers?

If you're performing the split with the filesystem active (not write-
locked, i.e. without "lockfs -w" preceding the "metadetach") and then
do not perform a full "fsck -o f" in the split-off part, then the
answer to both is "yes".
It should never happen if you writelocked the fs before splitting the
underlaying mirror.

> * If the file system is corrupted, why isn't mount capturing the corruption?

Because mount doesn't perform a full filesystem check since you're
using logging. Your mirror split may have left the log in a
"seemingly decent" state that actually is not consistent with the
data (outside the log) on disk, but neither detectable as the log
headers say all is fine. If so, ufs trusts the log - what else should
it do ?

Best Regards,
Frank Hofmann

_______________________________________________
ufs-discuss mailing list
[email protected]

Reply via email to