> When booting into the hibernated kernel, I was greeted by the > > WARNING: / was not properly unmounted > > message instead of the expected @unhibernating at ... and I had to run > fsck_ffs manually because rc's fsck found unexpected inconsistencies > on my /usr partition. It went on to clear thousands of inodes because > they had an "UNKNOWN FILE TYPE". Only /usr was affected, all other > partitions were clean. > > After fsck was done, I let rc proceed and from a couple of error > messages, it was clear that /usr was not in great shape: for example, > vi recover complained about missing perl stuff and numerous manuals > were missing. Thus, I booted into bsd.rd and installed the same > snapshot again.
Yes, this is entirely possible. vfs and ffs have no way to request a perfect sync of a filesystem which is still mounted. There is only has code to do it for filesystems which are being unmounted. Yes I know some people are going to point at functions now, but dig deep enough and some tests and you'll come to the same conclusions. All it takes is 1 block not making it to disk, and the rules are broken. Without any evidence, I also have become suspicious of the buffer cache falling behind on performing a write.
