# eXtremeDB Fatal Error Codes

> The following table lists fatal error code bases that indicate bugs in the application code that render the eXtremeDB runtime unable to safely continue execution. In Java, C# and Python applications fatal errors will raise exceptions. In C and C++ applications, the ERR type return codes are passed to the runtime function `mco_stop()` to terminate execution. `mco_stop()`in turn calls the internal function `mco_stop__()` with the actual file name and line number in the source code where the error condition was detected. If a fatal error handler has been registered, a break point can be set there in the debugger and the filename and line number can be seen by examining the call stack to further aid in locating the source of the bug.

> The error code base values identify the type of error. But the actual value of the return code will be composed of the base value for this type of error plus the source code line number in the runtime where the error was detected. For this reason the error code value cannot be searched by number. But the cause of the error can often be determined by recognizing its base, then lookup that base value in the table below.

> For example, suppose your application terminates with error code 530040. Subtracting away the runtime source code line number (40 in this case) gives the error code base 530000. As can be seen in the table below, this base code indicates an invalid object handle. Very often this type of bug can be found by simply examining the call stack to see where in the application code the eXtremeDB API that trapped the error was called.

> If the programming error is not obvious, please send the error code along with an explanation to McObject Technical Support.

> Mnemonic Constant Name
> Value
> Meaning
> MCO_ERR_DB
> 100000
> Database head
> MCO_ERR_DICT
> 110000
> Dictionary
> MCO_ERR_CURSOR
> 120000
> Cursors
> MCO_ERR_PMBUF
> 130000
> Page manager (internal allocator) buffer
> MCO_ERR_COMMON
> 140000
> Common routines
> MCO_ERR_HEAP
> 150000
> Heap manager
> MCO_ERR_OBJ
> 160000
> Object allocator
> MCO_ERR_BLOB
> 170000
> Blob operation
> MCO_ERR_FREC
> 180000
> Record allocator
> MCO_ERR_VOLUNTARY
> 190000
> Voluntary index
> MCO_ERR_LOADSAVE
> 200000
> Db save and load
> MCO_ERR_PGMEM
> 210000
> Page memory
> MCO_ERR_EV_SYN
> 220000
> Synchronous events
> MCO_ERR_EV_ASYN
> 230000
> Asynchronous events
> MCO_ERR_EV_W
> 240000
> Event wrappers
> MCO_ERR_XML_W
> 250000
> XML serialization
> MCO_ERR_XML_SC
> 260000
> XML schema
> MCO_ERR_BTREE
> 270000
> Btree
> MCO_ERR_HASH
> 280000
> Hash
> MCO_ERR_RECOV
> 290000
> Recovery
> MCO_ERR_INST
> 330000
> Db instance
> MCO_ERR_TRN
> 340000
> Transaction (or a connection shared between threads)
> MCO_ERR_TMGR
> 370000
> Trans. manager
> MCO_ERR_SYNC
> 400000
> General sync
> MCO_ERR_ORDER
> 450000
> Ordering and hash
> MCO_ERR_SEM
> 460000
> Semaphores
> MCO_ERR_SHM
> 470000
> Shared memory
> MCO_ERR_SER
> 500000
> Serialization
> MCO_ERR_HA
> 510000
> High Availability
> MCO_ERR_DB_NOMEM
> 520000
> Insufficient memory
> MCO_ERR_OBJECT_HANDLE
> 530000
> Invalid object handle
> MCO_ERR_UNSUPPORTED_FLOAT
> 540000
> Support of float and double types is disabled
> MCO_ERR_UNSUPPORTED_DOUBLE
> 550000
> Double unsupported. DEPRECATED
> MCO_ERR_DB_NOMEM_HASH
> 560000
> Insufficient memory in hash index
> MCO_ERR_DB_NOMEM_HEAP
> 570000
> Insufficient memory in heap manager
> MCO_ERR_DB_NOMEM_TRANS
> 580000
> Insufficient memory in transaction manager
> MCO_ERR_DB_NAMELONG
> 590000
> Database name is too long
> MCO_ERR_DB_VERS_MISMATCH
> 600000
> Version of eXtremeDB runtime mismatch. (Be sure to recompile the schema and link your application with the new generated .h and .c files when moving a schema from one installation of eXtremeDB to another distribution package.)
> MCO_ERR_RUNTIME
> 610000
> Invalid type of sync. library
> MCO_ERR_INMEM_ONLY_RUNTIME
> 620000
> There are persistent classes in the schema but runtime in-memory only
> MCO_ERR_DISK
> 700000
> General disk error
> MCO_ERR_DISK_WRITE
> 710000
> Unable to write to persistent storage
> MCO_ERR_DISK_READ
> 720000
> Unable to read from persistent storage
> MCO_ERR_DISK_FLUSH
> 730000
> Unable to commit file system buffers to disk
> MCO_ERR_DISK_CLOSE
> 740000
> Error closing persistent storage
> MCO_ERR_DISK_TRUNCATE
> 750000
> Unable to truncate persistent storage
> MCO_ERR_DISK_SEEK
> 760000
> Unable to seek in persistent storage
> MCO_ERR_DISK_OPEN
> 770000
> Unable to open persistent storage
> MCO_ERR_DISK_ALREADY_OPENED
> 780000
> Persistent storage already opened
> MCO_ERR_DISK_NOT_OPENED
> 790000
> Persistent storage has not been opened
> MCO_ERR_DISK_INVALID_PARAM
> 800000
> Invalid parameters value
> MCO_ERR_DISK_PAGE_ACCESS
> 810000
> Error reading a page from persistent media
> MCO_ERR_DISK_INTERNAL_ERROR
> 820000
> Internal fatal error
> MCO_ERR_DISK_OPERATION_NOT_ALLOWED
> 830000
> Operation not allowed fatal error
> MCO_ERR_DISK_ALREADY_CONNECTED
> 840000
> Persistent storage already connected
> MCO_ERR_DISK_TOO_MANY_INDICES
> 850000
> Too many indexes in persistent classes
> MCO_ERR_DISK_TOO_MANY_CLASSES
> 860000
> Too many persistent classes
> MCO_ERR_DISK_SPACE_EXHAUSTED
> 870000
> Persistent storage device out of space
> MCO_ERR_DISK_PAGE_POOL_EXHAUSTED
> 880000
> Too many pinned disk pages
> MCO_ERR_DISK_INCOMPATIBLE_LOG_TYPE
> 890000
> Incompatible database log type
> MCO_ERR_DISK_BAD_PAGE_SIZE
> 900000
> Page size is not acceptable
> MCO_ERR_DISK_SYNC
> 910000
> Failed operation on sync. primitive
> MCO_ERR_DISK_CRC
> 920000
> Wrong CRC code of disk page
> MCO_ERR_DISK_FORMAT_MISMATCH
> 930000

> Incompatible configuration changes affecting disk database format. All incompatible changes of configuration which affect format of the database on the disk:

> - CRC checking mode
> - maximal size of classes
> - incompatible transaction manager

> See also MCO_ERR_DISK_BAD_PAGE_SIZE (reported when in-memory or disk page size were changed)

> MCO_ERR_CHECKPIN
> 940000
> Unbalanced pin / unpin
> MCO_ERR_CONN
> 950000
> Connection processing
> MCO_ERR_REGISTRY
> 960000
> Registry processing
> MCO_ERR_INDEX
> 970000
> Index processing
> MCO_ERR_VTMEM
> 980000
> In-memory only runtime
> MCO_ERR_VTDSK
> 990000
> mixed runtime
> MCO_ERR_RTREE
> 1000000
> rtree index
> MCO_ERR_UDA
> 1010000
> Uniform Data Access
> MCO_ERR_PTREE
> 1020000
> Patricia trie index
> MCO_ERR_TL
> 1030000
> Transaction log
> MCO_ERR_CLUSTER
> 1040000
> Cluster
> MCO_ERR_CLNWTCP
> 1050000
> Cluster TCP transport
> MCO_ERR_SEQ
> 1060000
> Sequence errors
> MCO_ERR_NESTED_TRANS_TRAP
> 1090000
> Attempt to start nested transaction detected
> MCO_ERR_PERFMON
> 1100000
> Performance monitoring
> MCO_ERR_AIO
> 1110000
> Asynchronous IO
> MCO_ERR_CLNWMPI
> 1120000
> Cluster MPI transport
> MCO_ERR_DDL
> 1130000
> DDL errors
> MCO_ERR_SQL_EXCEPTION
> 1140000
> SQL exception
> MCO_ERR_BACKUP
> 1150000
> BACKUP exception
> MCO_ERR_ACTIVE_TRANSACTION
> 1160000
> Attempt to disconnect an active transaction
> Invalid return codes
> 1170000-1999998
> Values between 1170000 and 1999998 are not valid eXtremeDB return codes
> MCO_ERR_LAST
> 1999999
> Marker for the last possible error code

> Related Topics