CISAM corruption
Posted in 1995
Topics: Platform-Specific Issues
Informix provides the bcheck utility for cleaning up corrupt CISAM files after a system crash. I would like information about other possible causes for corruption besides a system crash. As background, we are using SunOS 5.3, CISAM 5.00.UD1 which apparently uses System V locking. In addition, these databases are often NFS-mounted. Our applications NEVER change the database; they just call isread() to sequentially read all rows in all tables. (In fact I have verified that the index and data files are not changed by examining their modification dates.) Periodically, our databases get corrupted such that later invocations of this application block in fcntl(F_SETLKW) inside isread(). (Note: The isread() does NOT request ISLOCK, so I assume this is a read lock that CISAM uses to protect the integrity of the record while it is being read from the filesystem.) This is a problem which I cannot reproduce. If I had some ideas for what could be going wrong, maybe I could make a test case. Any suggestions would be helpful (send via email to rlister@megatest.com) My suspicion is that the NFS lock daemon has a bug. Probably when a process terminates under certain circumstances the lock is not released. We had some other problems earlier with CISAM locking over NFS which turned out to be a Solaris bug. They fixed that, but maybe there are other problems too. thanks for any help, - Bob (rlister@megatest.com)