<div dir="ltr"><div>I split issues into two categories - corrupted media and software bugs. CRC failures are generally related to corrupted media and ideally we would not want those to cause panics. Software bugs we want to cause panics as quickly as possible so we can track down and fix them. What HAMMER1 is missing here is a recovery mechanism to delete the corruption to allow the filesystem to continue to be used.</div><div><br></div><div>Media corruption appears to most often be associated with system panics and unexpected power loss. System panics are not supposed to cause filesystem corruption at all and I'm still scratching my head and why it happens sometimes (it would be a good area to work on with HAMMER1). Unexpected power loss can cause media corruption no matter what the filesystem does. Owing to how hard drives work these days, sectors completely unrelated to the sectors being written at the time of the power failure can become corrupt. Most consumer SSDs can also have similar failure modes when an unexpected power loss occurs.</div><div><br></div><div>-Matt</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 23, 2016 at 6:05 AM, Tomohiro Kusumi <span dir="ltr"><<a href="mailto:kusumi.tomohiro@gmail.com" target="_blank">kusumi.tomohiro@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">CRC failure stuff in hammer1 is basically a mismatch between ondisk<br>
CRC vs whatever data's CRC when that data is read from a disk, so it's<br>
likely that either was corrupted.<br>
<br>
Many of the CRC failures end up calling panic() which leads to kernel<br>
panic (but not this one). There was a discussion on irc a few weeks<br>
ago about how fs should handle CRC failure, because some users would<br>
rather prefer to leave the fs as it is without going into panic so the<br>
fs is at least usable at the moment with broken data or meta data.<br>
<br>
(I wouldn't go far as to make any change with regards to consequence<br>
of CRC failure. It's a design level stuff which should be up to<br>
dillon@.)<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
2016-11-23 17:43 GMT+09:00 PeerCorps Trust Fund <<a href="mailto:ipc@peercorpstrust.org">ipc@peercorpstrust.org</a>>:<br>
> Hi all,<br>
><br>
> I don't think I have seen anywhere else in past mailing lists an example of<br>
> corruption on a HAMMER filesystem. But I loaded an old disk today with some<br>
> nonessential files and began copying them off to another machine. Towards<br>
> the end of the copy operation the console printed out the the below.<br>
><br>
> Perhaps this may be useful information to someone who someday finds<br>
> something similar in their console.<br>
><br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390269000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026a000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026e000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026d000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390268000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026b000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026f000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e39026c000/4096 FAILED<br>
> hammer_load_node: CRC B-TREE NODE @ 800000e390267000/4096 FAILED<br>
><br>
> --<br>
> Michael<br>
><br>
</div></div></blockquote></div><br></div>