Bug 1599867

Summary: Misleading "Error reading page" messages during an index rebuild
Product: Red Hat Enterprise Linux 7 Reporter: Thomas Jaskiewicz <tjaskiew>
Component: kmod-kvdoAssignee: Thomas Jaskiewicz <tjaskiew>
Status: CLOSED ERRATA QA Contact: Jakub Krysl <jkrysl>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.6CC: awalsh, jkrysl, limershe
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 6.1.1.109 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-30 09:39:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Thomas Jaskiewicz 2018-07-10 19:33:55 UTC
Description of problem:

When we determine that we need to rebuild an index, we search the volume to find the valid chapters, and the logging looks like this:

index could not be loaded: UDS Error: Corrupt saved component (1030)
Error reading page 71611 from volume
Error reading page 71541 from volume
Error reading page 71401 from volume
Error reading page 71121 from volume
Error reading page 70561 from volume
Error reading page 69441 from volume
Error reading page 67201 from volume
Error reading page 62721 from volume
Error reading page 53761 from volume
Error reading page 35841 from volume
Error reading page 26881 from volume
Error reading page 22401 from volume
Error reading page 20161 from volume
Error reading page 19041 from volume
Error reading page 18481 from volume
Error reading page 18341 from volume
Error reading page 18272 from volume
Replaying volume from chapter 0 through chapter 261

All those "Error reading page" messages refer to pages that actually did read successfully. The real problem is that we expected to read an index page, but the data were not a valid index. This happens primarily when we have a newish index that has not been completely written yet. The unwritten index pages will not look like index pages, and elicit this message.

It is better to not log these messages.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.  Create a VDO device
2.  Write some blocks to it.  "Some" in this case should be a million blocks or so.
3.  Crash the system.
4.  Reboot the system and bring up the VDO device.  It will rebuild the VDO and rebuild the UDS index.

Actual results:

The log will contain messages like this:

index could not be loaded: UDS Error: Corrupt saved component (1030)
Error reading page 71611 from volume
Error reading page 71541 from volume
Error reading page 71401 from volume
Error reading page 71121 from volume
Error reading page 70561 from volume
Error reading page 69441 from volume
Error reading page 67201 from volume
Error reading page 62721 from volume
Error reading page 53761 from volume
Error reading page 35841 from volume
Error reading page 26881 from volume
Error reading page 22401 from volume
Error reading page 20161 from volume
Error reading page 19041 from volume
Error reading page 18481 from volume
Error reading page 18341 from volume
Error reading page 18272 from volume
Replaying volume from chapter 0 through chapter 261



Expected results:

There are no "Error reading page" messages, and the log should contain:

index could not be loaded: UDS Error: Corrupt saved component (1030)
Replaying volume from chapter 0 through chapter 261



Additional info:

Comment 3 Thomas Jaskiewicz 2018-07-20 23:31:07 UTC
The kern.log snippet reported above came from one of our internal index tests.  But the  steps to reproduce describe how to do the same thing using a VDO device.  There are some small differences in how the UDS tests and the VDO startup code manage their storage devices, resulting in the message:

index could not be loaded: UDS Error: Corrupt saved component (1030)

sometimes having a different form.  The "index could not be loaded:" is the essential part of the message.  VDO will usually get "Index not saved cleanly (1069)" instead of "Corrupt saved component (1030)".  This difference is not important.

The important thing is that the "Error reading page" messages should not appear.

Comment 4 Jakub Krysl 2018-07-23 11:56:31 UTC
kmod-kvd-6.1.1.111
I have tried crashing the system in the middle of writing and crashing it some time after the writing was finished. I've seen message 'index could not be loaded: UDS Error: Corrupt saved component (1030)' in both cases, but no 'Error reading page'.
Regression testing passed.

Comment 6 errata-xmlrpc 2018-10-30 09:39:49 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3094