Error 605

Severity

21

Message text

Versions earlier than 15.0:

An attempt was made to fetch logical page '%ld' in database '%.*s' from cache '%.*s'. Page belongs to object with id '%ld', not to object '%.*s'.

Version 15.0 and later:

An attempt was made to fetch logical page '%ld' from cache '%.*s'. Page belongs to %S_PTNINFO and not to %S_PTNINFO.

Explanation

This serious error occurs when Adaptive Server discovers page allocation corruption. Adaptive Server tries to access a particular object but discovers a page in the page chain for that object whose object ID is different than that of the object being accessed. There is probably either a damaged page chain or an invalid entry in the system tables for that object.

Usually this error is detected after the corruption has been written to the database on disk (hard 605), but it can also occur entirely in cache without the damage ever being written to disk (transient 605), and is not associated with data corruption. See the next section for more information about the different kinds of 605 errors and their causes.

NoteWhen an error is transient, it means it is reported even though no error condition exists or it exists only in memory. Generally, a transient error is cleared by a reboot of Adaptive Server, whereas a hard error does not go away with an Adaptive Server reboot.

For accurate diagnosis of object ID mismatch problems, the 605 error is raised only when the objects in question are user objects. Other related types of errors result in one of the errors 691 through 697. For details on these errors, refer to the write-ups in this chapter.


How much corruption exists?

Assuming the error is not a transient 605, corruption usually exists in the second object specified in the 605 error text. If the dbcc checkdb and dbcc checkalloc commands do not report additional errors, the first object mentioned is not corrupt. Because the 605 error can mask the existence of other errors, you must run the dbcc checks to determine the extent of the damage.

Instead of listing two object names, this error might contain other information:

The following table list hardware causes for 605 errors.

Hardware cause

Additional information

Transient or hard

Overlapping partitions on disk (UNIX only).

NoteSee the Configuration Guide for UNIX for more information about partitions.

Often this occurs when the server is installed on a partition that overlaps other partitions.

Hard

Problem with device driver

--

Hard

Problem with controller

--

Hard

Bad disk

“Data retry” messages in /var/adm/messages (UNIX).

Hard

The following table lists software causes for 605 errors.

Software causes

Additional information

Transient or hard

Loading a master database on a master device that does not have rows in sysusages for dbid 1,2,3 identical to the device it was dumped from.

--

Hard

Loading a master database that has syscharsets in a location that is different from the default.

Caused by changing Adaptive Server sort order after operating it for some time.

Hard

Operating system notifies Adaptive Server that an I/O operation is complete when it is not.

Any time buffer information about a page is different from the disk information about the page (and the disk has the correct information).

Adaptive Server connection often dies.

Running dbcc checkdb and dbcc checkalloc should produce no more 605 errors.

Corruption is not on disk. First, checkpoint the other databases. Then, perform a shutdown...with nowait and restart Adaptive Server.

Transient

Action

To resolve the error:

  1. Run the dbcc checktable command on the second object specified in the error message.

  2. To help determine the full extent of the corruption, run the dbcc checkdb and dbcc checkalloc commands as soon as possible.

  3. Check the Adaptive Server error log for other errors that often accompany a 605 error. If the 605 error is not transient, the problem is severe and you probably need to restore from known clean backups.

  4. Either of the following situations may also apply to your Adaptive Server:

    • If this error occurs after rebuilding the master device or reconfiguring the configuration block to the defaults, then the sort order on the new device may not match the sort order in the dump. If the sort orders do not match, call Sybase Technical Support for further assistance.

    • To check if the error occurred as the result of hardware failure, examine your operating system error log and correct hardware problems.

Additional information

For information on locating device fragments, use the procedures in Determining the physical device on which a database resides in the chapter “Other Useful Tasks” in the most recent version of Troubleshooting and Disaster Recovery.

Have the information listed in “Reporting errors” on hand before contacting Technical Support, including the output of dbcc checkdb, dbcc checkalloc, and dbcc page for the corrupted page.

Related page mismatch errors

Starting with version 11.0.3, many page mismatch problems no longer raise 605 errors, but are reported with the following error numbers:

Error reference

Description

“Error 691”

Page 0 is read incorrectly, or an attempt is made to read a negative page number.

“Error 692”

Attempt to read an uninitialized page.

“Error 693”

I/O request was made prematurely, causing an object ID mismatch.

“Error 694”

The device or operating system may be suspect.

“Error 695”

The page has been overwritten, for example page 10 on disk may actually hold page 20. Hard error.

“Error 696”

Objects are crossed in tempdb. Similar to a 605 except that objects are in tempdb.

“Error 697”

Results from memory corruption.

Refer to the write-ups for these errors in this manual for more information.

Versions in which this error is raised

All versions