Running a Cyclic Redundancy Check

The Index tool can run a cyclic redundancy check (CRC) on each block of existing data storage to check the data integrity of ROS data blocks.

Running the Tool

You can invoke the Index tool from the command line or from vsql, depending on whether the database is up or down:

Handling CRC Errors

Vertica evaluates the CRC values in each ROS data block each time it fetches data disk to process a query. If CRC errors occur while fetching data, the following information is written to the vertica.log file:

CRC Check Failure Details:File Name:
File Offset:
Compressed size in file:
Memory Address of Read Buffer:
Pointer to Compressed Data:
Memory Contents: 

The Event Manager is also notified of CRC errors, so you can use an SNMP trap to capture CRC errors:

"CRC mismatch detected on file <file_path>. File may be corrupted. Please check hardware and drivers."

If you run a query from vsql, ODBC, or JDBC, the query returns a FileColumnReader ERROR. This message indicates that a specific block's CRC does not match a given record as follows:

hint: Data file may be corrupt.  Ensure that all hardware (disk and memory) is working properly.  
Possible solutions are to delete the file <pathname> while the node is down, and then allow the node 
to recover, or truncate the table data.code: ERRCODE_DATA_CORRUPTED