Chapter 4. Error Messages

This section lists the errors that may be encountered when using the B Tree system. The occurrence of most of these errors indicates a serious failure in the B Tree system, with the following exceptions:


The key given as a parameter to bfndky (or its brethren) does not exist.


The key given as a parameter to binsky (or its brethren) already exists in the index. Duplicate keys are not permitted.


File busy, a normal hazard when using shared access mode in a multiuser environment.


The B Tree file was originally opened with read-only permission, and a write has subsequently been attempted. Probably an application program error.


Attempt to perform operation on B Tree file, but there is no file attached to the context pointer provided, likely an application error.


Attempt made to open the same file again, likely an application error.


An attempt has been made to delete the current root, or worse, the super root. This is forbidden by the BT library.


Unknown debug option passed to bdbug, likely an application error.


Maximum number of concurrently open B Tree files reached - may be an application error.


Illegal context pointer passed to a B Tree function - may be an application error.


A negative length data record has been passed to a B Tree function.


The B Tree index file was created using an older version of the B Tree library, and cannot be accessed safely with this version. Extract data using a program based on the previous version of the B Tree library, and import into a index file created with the new. Alternatively, it may be possible to use the btr recovery tool to migrate an older BTree index file to the latest version.


A new data record cannot be entered as the maximum value of a data block pointer has been exceeded.


The index file has reached its maximum size for this implementation.


Unable to set alarm for for file lock handling. This may be a problem with the underlying OS.


Index context invalid for current key operation. An attempt was made to delete or update the current key, but the context is not valid. A valid context is set by bfndky, bnxtky, bprvky, btsel, btseln, or btselp.


Duplicates are not permitted in the superroot. Attempting to permit duplicate keys in the superroot, via btdups(..,TRUE), is prohibited.


Index file was created with a non-64 bit version (LFS=0) of the library. However, access is being attempted with a 64 bit version.


Index file was created with a 64 bit version (LFS=1) of the library. However, access is being attempted with a non-64 bit version.

Table 4.1. B Tree Error Messages

1QBLKNRBlock %s is not a root block
2QCLSIOUnable to close index file: "file"
3QCRTIOUnable to create index file: "file"
4QCPBLKUnable to read source or destination block
5QWRBLKI/O error writing block
6QRDSUPI/O error reading super root
7QWRSUPI/O error writing super root
8QOPNIOI/O error opening index file: "file"
9QRDBLKI/O error reading block
10QIXOPNAn index file is already open
11QSPLITCan't split full block
12QINFERBad info block index used
13QNOMEMUnable to acquire a free memory block
14QSTKUFStack underflow
15QSTKOFStack overflow
16QBLKFLCan't insert key at block: %s
17QLOCTBReplace location out of range
18QSPKEYSplit: search for middle key failed
19QWRMEMRequested write block not in memory
20QBALSEBalance: search for key failed
21QDELEXExact flag not set for delete
22QDELERInternal inconsistency in delete operation
23QDELRPSearch for deleted key replacement failed (in block %s)
24QDEMSEDemote search failed
25QDEMSPDemote split failed
26QJNSEJoin search failed
27QNODEFCannot locate default root ($$default)
28QDELCRDeletion of the current or super root is forbidden
29QBADIXNegative in-memory index encountered
30QNOBTFNo index file open for this operation
31QINERRIndex file already in use
32QBADOPDebug option not recognised
33QNOACTNo more index files may be opened (limit reached)
34QBADAPInvalid index file context pointer
35QBUSYFile is busy
37QNOBLKNo block available for data storage
38QNEGSZData block usage gone bad: %s
39QNOTDAData segment header references a non-data block: %s
40QBADCTXTIndex context invalid for current key operation
41QDLOOPCircular data segment pointer encountered
42QUNLCKUnlock operation failed
43QLRUERLRU queue corrupt - index not in list
44QDAERRUnable to insert data record
45QDNEGData record cannot be negative
46QDUPKey "key" already exists in index
47QNOKEYKey "key" does not exist in index
48QNOWRTWrite access to index prohibited
49QNOTFRBlock on free list is not marked as free
50QBADVRIndex file is incompatible with current version: "version"
51QDAOVRData capacity exceeded at block: "block"
52QF2BIGIndex file is at maximum size
53QBADALUnable to set alarm for locking
54QDRANEGData record address is negative: "address"
55QBLKSZERRDefined block size is not a power of two: "size"
56QNODUPSDuplicates keys are not allowed for the superroot
57QPOSERRLocation search exceeds key count at block: %s
58QNOT64BIT Index file likely not LFS (64bit) enabled; doesn't match library.
59Q64BIT Index file likely LFS (64bit) enabled; doesn't match library.
60QNOTDUP Duplicate key address does not reference a duplicate block: %s.
61QDUPSZ Duplicate key entry has wrong size.
62QBADIR Bad direction parameter.