Error 2610

Severity

22

Message text

Could not find leaf row in nonclustered index '%.*s' page %ld that corresponds to data row from logical data page %ld, row offset %d during update index attempt after data page split in dbid %d.

NoteThis error can be caused by a hardware problem.

Explanation

This error occurs when Adaptive Server fails to update a nonclustered index at the leaf level after a page split (a page split occurs when a page fills up and there is no more room to write on that page). This error message indicates index corruption.

This is a serious error. You may be able to recover from this error, but you may have to restore from known, clean backups.

Action

  1. Record the value of the data page and index name (or ID if that is given instead) from the error message. Using this information and the instructions in “Finding an object name from a page number” in the Troubleshooting and Disaster Recovery guide, determine which table corresponds to the data page number from the error message text.

  2. If the table determined in step 1 is a system table (that is, the object ID is less than 100) and the index ID is not 0 (zero), see “Fixing a system table corrupted index” in the Troubleshooting and Disaster Recovery guide for instructions on how to repair the system table index. Then go to step 5.

    NoteIf the table determined is step 1 is a system table and the index ID is 0 (zero), contact Sybase Technical Support. They may be able to help you repair the corruption, but it may be necessary to restore from clean backups.

  3. If the table determined in step 1 is not a system table and the message displayed the index ID rather than the index name, find the name of the index involved by executing this query:

    1> select name from sysindexes
    2> where indid = <index_ID>
    3> and id = <object_ID>
    4> go
    

    Where <object_ID> is the ID of the table as determined in step 1 and <index_ID> is the ID of the index specified in the error message.

  4. Drop and re-create the index using the table name obtained in step 1 and the index name determined in step 3.

  5. To verify that all problems have been resolved on this table, run dbcc checktable and dbcc tablealloc on the affected table.

Additional information

If problems persist, this procedure may not be sufficient to clean up the index corruption, and you should contact Sybase Technical Support. Have the output from the dbcc checkalloc or dbcc tablealloc and dbcc checktable commands available for review.

Versions in which this error is raised

All versions