Bug 225110

Summary: UFS "cylinder checksum failed" messages after crash, with SU+J enabled
Product: Base System Reporter: Ed Maste <emaste>
Component: kernAssignee: freebsd-fs (Nobody) <fs>
Status: Closed FIXED    
Severity: Affects Only Me CC: arshankhanifar, cem, chris, dumbbell, emaste, mckusick, mizhka
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   

Description Ed Maste freebsd_committer freebsd_triage 2018-01-12 15:34:18 UTC
Reference thread at https://lists.freebsd.org/pipermail/freebsd-current/2018-January/068043.html

tuexen@ writes

Not sure this helps: But we have seen this also after system panics
when having soft update journaling enabled. Having soft update journaling
disabled, we do not observed this after several panics.
Just to be clear: The panics are not related to this issue,
but to other network development we do.

Also reproduced on two new installs by my co-op students:

- system panics for some reason, unrelated to filesystems
- fsck SU+J runs after reboot
- kernel reports many cylinder checksum failures
Comment 1 commit-hook freebsd_committer freebsd_triage 2018-01-12 20:26:04 UTC
A commit references this bug:

Author: emaste
Date: Fri Jan 12 20:25:57 UTC 2018
New revision: 327890
URL: https://svnweb.freebsd.org/changeset/base/327890

Log:
  bsdinstall: disable SUJ by default

  SUJ + cg checksums produce spurious warnings after an unclean shutdown
  (e.g. a crash).  For now disable SUJ for UFS installs so installing from
  a FreeBSD 12 snapshot results in a usable filesystem, until this can be
  fixed.

  PR:		225110
  Submitted by:	Arshan Khanifar <arshankhanifar gmail.com>
  Sponsored by:	The FreeBSD Foundation
  Differential Revision: https://reviews.freebsd.org/D13890

Changes:
  head/usr.sbin/bsdinstall/partedit/gpart_ops.c
Comment 2 Kirk McKusick freebsd_committer freebsd_triage 2018-01-18 07:04:47 UTC
Please retry with this change included as I believe it will fix the problem.

New Revision: 328092
URL: https://svnweb.freebsd.org/changeset/base/328092

Log:
  Correct fsck journal-recovery code to update a cylinder-group
  check-hash after making changes to the cylinder group. The problem
  was that the journal-recovery code was calling the libufs bwrite()
  function instead of the cgput() function. The cgput() function updates
  the cylinder-group check-hash before writing the cylinder group.
Comment 3 Jean-Sébastien Pédron freebsd_committer freebsd_triage 2018-01-19 09:25:56 UTC
I tried this patch with success on my laptop! Thank you Kirk :)
Comment 4 Arshan Khanifar 2018-01-25 19:52:37 UTC
With softupdates journaling enabled and this patch applied, I made my system panic three times followed by a reboot. 
System reboot was fine and no problems were observed.
Comment 5 commit-hook freebsd_committer freebsd_triage 2018-01-25 19:57:27 UTC
A commit references this bug:

Author: emaste
Date: Thu Jan 25 19:57:21 UTC 2018
New revision: 328410
URL: https://svnweb.freebsd.org/changeset/base/328410

Log:
  bsdinstall: enable SUJ by default (revert r327890)

  fsck should be fixed as of r328092.

  PR:		225110
  Tested by:	dumbbell, Arshan Khanifar <arshankhanifar gmail.com>

Changes:
  head/usr.sbin/bsdinstall/partedit/gpart_ops.c