|To:||Dave Chinner <david@xxxxxxxxxxxxx>|
|Subject:||Re: Metadata CRC error upon unclean unmount|
|From:||Mark Tinguely <tinguely@xxxxxxx>|
|Date:||Fri, 27 Jun 2014 09:26:35 -0500|
|References:||<CA+o=1OW0OXhzU+b9ACMZzg0dq=B7BSj+yPXD2Vrr9F6mWK8ruQ@xxxxxxxxxxxxxx> <20140624201946.GJ9508@dastard> <CA+o=1OVnORG0Ah3Zx8dkGzs7vtT7odRH=v12KqtLW0MP_3oHjQ@xxxxxxxxxxxxxx> <20140625012144.GK9508@dastard> <20140626002859.GQ9508@dastard> <53AC7CA9.9050505@xxxxxxx> <20140626224727.GS9508@dastard>|
|User-agent:||Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0|
On 06/26/14 17:47, Dave Chinner wrote:
On Thu, Jun 26, 2014 at 03:03:53PM -0500, Mark Tinguely wrote:
Could an out of order CIL push cause this?I don't think so - the issue appears to be that a CRC is not being recalculated on a buffer before IO has been issued to disk, not that there is incorrect metadata in the buffer. Regardless of how we modify the buffer, the CRC should always match the contents of the block on disk because we calculate it with the buffer locked and just prior to it being written.SGI saw sequence 2 (and sometimes 3/4) of the cil push get in front of cil push sequence 1. Looks like the setting of log->l_cilp->xc_ctx->commit_lsn in xlog_cil_init_post_recovery() lets this happen.I don't think can actually happen - the CIL is not used until after xlog_cil_init_post_recovery() is completed and transactions start during EFI recovery. Any attempt to use it prior to that call will oops on the null ctx_ticket. As for the ordering issue, I'm pretty sure that was fixed in commit f876e44 ("xfs: always do log forces via the workqueue").
The problem will be with the first CIL push *after* the xlog_cil_init_post_recovery() especially if the first ctx has a large vector list and the following ones have small ones.
Looks to me that the problem is still in the cil push worker. --Mark.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||[PATCH v2 2/6] xfs: add a sysfs kset, Brian Foster|
|Next by Date:||Re: XFS CRC errors after a crash, Jan Kara|
|Previous by Thread:||Re: Metadata CRC error upon unclean unmount, Dave Chinner|
|Next by Thread:||Re: Metadata CRC error upon unclean unmount, Dave Chinner|
|Indexes:||[Date] [Thread] [Top] [All Lists]|