Table of Contents
Abstract
This chapter discusses reporting and handling of errors
potentially generated in MySQL Cluster API applications. It
includes information about error codes, classifications, and
messages for the MGM API (see Section 3.3.3, “The ndb_mgm_error
Type”)
and NDB API (see Section 5.2, “NDB API Errors and Error Handling”). Also
provided in this chapter is a listing of exit codes and messages
returned by a failed ndbd process, in
Section 5.2, “NDB API Errors and Error Handling”.
The following sections list the values of MGM
errors by type. There are six types of MGM
errors:
request errors
node ID allocation errors
service errors
backup errors
single user mode errors
general usage errors
There is only one general usage error.
These are errors generated by failures to connect to a management server.
Value | Description |
---|---|
NDB_MGM_ILLEGAL_CONNECT_STRING | Invalid connectstring |
NDB_MGM_ILLEGAL_SERVER_HANDLE | Invalid management server handle |
NDB_MGM_ILLEGAL_SERVER_REPLY | Invalid response from management server |
NDB_MGM_ILLEGAL_NUMBER_OF_NODES | Invalid number of nodes |
NDB_MGM_ILLEGAL_NODE_STATUS | Invalid node status |
NDB_MGM_OUT_OF_MEMORY | Memory allocation error |
NDB_MGM_SERVER_NOT_CONNECTED | Management server not connected |
NDB_MGM_COULD_NOT_CONNECT_TO_SOCKET | Not able to connect to socket |
These errors result from a failure to assign a node ID to a cluster node.
Value | Description |
---|---|
NDB_MGM_ALLOCID_ERROR | Generic error; may be possible to retry and recover |
NDB_MGM_ALLOCID_CONFIG_MISMATCH | Non-recoverable generic error |
These errors result from the failure of a node or cluster to start, shut down, or restart.
Value | Description |
---|---|
NDB_MGM_START_FAILED | Startup failure |
NDB_MGM_STOP_FAILED | Shutdown failure |
NDB_MGM_RESTART_FAILED | Restart failure |
These are errors which result from problems with initiating or aborting backups.
Value | Description |
---|---|
NDB_MGM_COULD_NOT_START_BACKUP | Unable to initiate backup |
NDB_MGM_COULD_NOT_ABORT_BACKUP | Unable to abort backup |
These errors result from failures to enter or exit single user mode.
Value | Description |
---|---|
NDB_MGM_COULD_NOT_ENTER_SINGLE_USER_MODE | Unable to enter single-user mode |
NDB_MGM_COULD_NOT_EXIT_SINGLE_USER_MODE | Unable to exit single-user mode |
Abstract
This section contains a discussion of error handling in NDB API
applications as well as listing listings of the most common
NDB
error codes and messages, along with
their classifications and likely causes for which they might be
raised.
For information about the NdbError
structure,
which is used to convey error information to NDB API applications,
see Section 2.3.31, “The NdbError
Structure”.
It is strongly recommended that you not
depend on specific error codes in your NDB
API applications, as they are subject to change over time.
Instead, you should use the NdbError::Status
and error classification in your source code, or consult the
output of perror
to obtain
information about a specific error code.
--ndb
error_code
If you find a situation in which you need to use a specific error code in your application, please file a bug report at http://bugs.mysql.com/ so that we can update the corresponding status and classification.
Abstract
This section describes how NDB API errors can be detected and mapped onto particular operations.
NDB API errors can be generated in either of two ways:
When an operation is defined
When an operation is executed
Errors raised during operation definition.
Errors generated during operation definition result in a
failure return code from the method called. The actual error
can be determined by examining the relevant
NdbOperation
object, or the
operation's NdbTransaction
object.
Errors raised during operation execution.
Errors occurring during operation execution cause the
transaction of which they are a part to be aborted unless the
AO_IgnoreError
abort option is set for the
operation.
If you have worked with older versions of the NDB API, you
should be aware that, beginning with MySQL Cluster NDB 6.2.0,
the AbortOption
type is a member of
NdbOperation
. See
Section 2.3.15.1.1, “The NdbOperation::AbortOption
Type”, for more
information.
By default, read operations are run with
AO_IgnoreError
, and write operations are run
with AbortOnError
, but this can be overridden
by the user. When an error during execution causes a transaction
to be aborted, the execute()
method returns a
failure return code. If an error is ignored due to
AO_IgnoreError
being set on the operation,
the execute()
method returns a success code,
and the user must examine all operations for failure using
NdbOperation::getNdbError()
. For this reason,
the return value of getNdbError()
should
usually be checked, even if execute()
returns
success. If the client application does not keep track of
NdbOperation
objects during execution, then
NdbTransaction::getNextCompletedOperation()
can be used to iterate over them.
You should also be aware that use of NdbBlob
can result in extra operations being added to the batches
executed. This means that, when iterating over completed
operations using getNextCompletedOperation()
,
you may encounter operations related to
NdbBlob
objects which were not defined by
your application.
A read whose LockMode
is
CommittedRead
cannot be
AbortOnError
. In this case, it is always be
IgnoreError
.
In all cases where operation-specific errors arise, an execution
error with an operation is marked against both the operation and
the associated transaction object. Where there are multiple
operation errors in a single
NdbTransaction::execute()
call, due to
operation batching and the use of
AO_IgnoreError
, only the first is marked
against the NdbTransaction
object. The
remaining errors are recorded against the corresponding
NdbOperation
objects only.
It is also possible for errors to occur during execution—such as a data node failure—which are marked against the transaction object, but not against the underlying operation objects. This is because these errors apply to the transaction as a whole, and not to individual operations within the transaction.
For this reason, applications should use
NdbTransaction::getNdbError()
as the first
way to determine whether an
NdbTransaction::execute()
call failed. If the
batch of operations being executed included operations with the
AO_IgnoreError
abort option set, then it is
possible that there were multiple failures, and the completed
operations should be checked individually for errors using
NdbOperation::getNdbError()
.
Implicit NdbTransaction::execute()
calls in scan and
BLOB
methods.
Scan operations are executed in the same way as other
operations, and also have implicit
execute()
calls within the
NdbScanOperation::nextResult()
method. When
NdbScanOperation::nextResult()
indicates
failure (that is, if the method returns
-1
), the transaction object should be
checked for an error. The NdbScanOperation
may also contain the error, but only if the error is not
operation-specific.
Some BLOB
manipulation methods also have
implicit internal execute()
calls, and so can
experience operation execution failures at these points. The
following NdbBlob
methods can generate
implicit execute()
calls; this means that
they also require checks of the
NdbTransaction
object for errors via
NdbTransaction::getNdbError()
if they return
an error code:
setNull()
truncate()
readData()
writeData()
Summary. In general, it is possible for an error to occur during execution (resulting in a failure return code) when calling any of the following methods:
NdbTransaction::execute()
NdbBlob::setNull()
NdbBlob::truncate()
NdbBlob::readData()
NdbBlob::writeData()
NdbScanOperation::nextResult()
This method does not perform an
implicit execute()
call. The
NdbBlob
methods can cause other defined
operations to be executed when these methods are called;
however, nextResult()
calls do not do
so.
If this happens, the
NdbTransaction::getNdbError()
method should
be called to identify the first error that occurred. When
operations are batched, and there are
IgnoreError
operations in the batch, there
may be multiple operations with errors in the transaction. These
can be found by using
NdbTransaction::getNextCompletedOperation()
to iterate over the set of completed operations, calling
NdbOperation::getNdbError()
for each
operation.
When IgnoreError
has been set on any
operations in a batch of operations to be executed, the
NdbTransaction::execute()
method indicates
success even where errors have actually occurred, as long as
none of these errors caused a transaction to be aborted. To
determine whether there were any ignored errors, the transaction
error status should be checked using
NdbTransaction::getNdbError()
. Only
if this indicates success can you be certain that no errors
occurred. If an error code is returned by this
method, and operations were batched, then you should iterate
over all completed operations to find all the operations with
ignored errors.
Example (pseudocode).
We begin by executing a transaction which may have batched
operations and a mix of AO_IgnoreError
and
AbortOnError
abort options:
int execResult= NdbTransaction.execute(args
);
For the number and permitted values of
args
, see
Section 2.3.19.2.5, “NdbTransaction::execute()
”.
Next, because errors on AO_IgnoreError
operations do not affect execResult—that is, the value
returned by execute()
—we check for
errors on the transaction:
NdbError err= NdbTransaction.getNdbError(); if (err.code != 0) {
An nonzero value for the error code means that an error was raised on the transaction. This could be due to any of the following conditions:
A transaction-wide error, such as a data node failure, that caused the transaction to be aborted
A single operation-specific error, such as a constraint violation, that caused the transaction to be aborted
A single operation-specific ignored error, such as no data found, that did not cause the transaction to be aborted
The first of many operation-specific ignored errors, such as no data found when batching, that did not cause the transaction to be aborted
First of a number of operation-specific ignored errors such as no data found (when batching) before an aborting operation error (transaction aborted)
if (execResult != 0) {
The transaction has been aborted. The recommended strategy for handling the error in this case is to test the transaction error status and take appropriate action based on its value:
switch (err.status) { case value1: // statement block handlingvalue1
... case value2: // statement block handlingvalue2
... // (etc. ...) case valueN: // statement block handlingvalueN
... }
Since the transaction was aborted, it is generally necessary to iterate over the completed operations (if any) and find the errors raised by each only if you wish to do so for reporting purposes.
} else {
The transaction itself was not aborted, but there must be one or more ignored errors. In this case, you should iterate over the operations to determine what happened and handle the cause accordingly.
} }
To handle a NdbScanOperation::nextResult()
which returns -1
, indicating that the
operation failed (omitting cases where the operation was
successful):
int nextrc= NdbScanOperation.nextResult(args
);
For the number and permitted values of
args
, see
Section 2.3.18.2.2, “NdbScanOperation::nextResult()
”.
if (nextrc == -1) {
First, you should check the NdbScanOperation
object for any errors:
NdbError err= NdbScanOperation.getNdbError(); if (err.code == 0) {
No error was found in the scan operation; the error must belong to the transaction as whole.
} err= NdbTransaction.getNdbError();
Now you can handle the error based on the error status:
switch (err.status) { case value1: // statement block handlingvalue1
... case value2: // statement block handlingvalue2
... // (etc. ...) case valueN: // statement block handlingvalueN
... } }
For information about NDB API error classification and status
codes, see Section 5.2.3, “NDB Error Classifications”. While
you should not rely on a specific error code or message text in
your NDB API applications—since error codes and messages
are both subject to change over time—it can be useful to
check error codes and messages to help determine why a
particular failure occurred. For more information about these,
see Section 5.2.2, “NDB Error Codes and Messages”. For more about
NdbError
and the types of information which
can be obtained from NdbError
objects, see
Section 2.3.31, “The NdbError
Structure”.
This section contains a number of tables, one for each type of NDB API error. The error types include the following:
|
|
|
The information in each table includes, for each error:
The numeric NDB error code
The corresponding MySQL error code
The NDB classification code
See Section 5.2.3, “NDB Error Classifications”, for the meanings of these classification codes.
The text of the error message
Similar errors have been grouped together in each table.
You can always obtain the latest error codes and information from
the file storage/ndb/src/ndbapi/ndberror.c
.
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
0 | 0 | NE | No error |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
281 | HA_ERR_NO_CONNECTION | AE | Operation not allowed due to cluster shutdown in progress |
299 | DMEC | AE | Operation not allowed or aborted due to single user mode |
763 | DMEC | AE | Alter table requires cluster nodes to have exact same version |
823 | DMEC | AE | Too much attrinfo from application in tuple manager |
829 | DMEC | AE | Corrupt data received for insert/update |
831 | DMEC | AE | Too many nullable/bitfields in table definition |
850 | DMEC | AE | Too long or too short default value |
876 | DMEC | AE | 876 |
877 | DMEC | AE | 877 |
878 | DMEC | AE | 878 |
879 | DMEC | AE | 879 |
880 | DMEC | AE | Tried to read too much - too many getValue calls |
884 | DMEC | AE | Stack overflow in interpreter |
885 | DMEC | AE | Stack underflow in interpreter |
886 | DMEC | AE | More than 65535 instructions executed in interpreter |
897 | DMEC | AE | Update attempt of primary key via ndbcluster internal api (if this occurs via the MySQL server it is a bug, please report) |
892 | DMEC | AE | Unsupported type in scan filter |
1233 | DMEC | AE | Table read-only |
4256 | DMEC | AE | Must call Ndb::init() before this function |
4257 | DMEC | AE | Tried to read too much - too many getValue calls |
320 | DMEC | AE | Invalid no of nodes specified for new nodegroup |
321 | DMEC | AE | Invalid nodegroup id |
322 | DMEC | AE | Invalid node(s) specified for new nodegroup, node already in nodegroup |
323 | DMEC | AE | Invalid nodegroup id, nodegroup already existing |
324 | DMEC | AE | Invalid node(s) specified for new nodegroup, no node in nodegroup is started |
417 | DMEC | AE | Bad operation reference - double unlock |
242 | DMEC | AE | Zero concurrency in scan |
244 | DMEC | AE | Too high concurrency in scan |
269 | DMEC | AE | No condition and attributes to read in scan |
874 | DMEC | AE | Too much attrinfo (e.g. scan filter) for scan in tuple manager |
4600 | DMEC | AE | Transaction is already started |
4601 | DMEC | AE | Transaction is not started |
4602 | DMEC | AE | You must call getNdbOperation before executeScan |
4603 | DMEC | AE | There can only be ONE operation in a scan transaction |
4604 | DMEC | AE | takeOverScanOp, to take over a scanned row one must explicitly request keyinfo on readTuples call |
4605 | DMEC | AE | You may only call readTuples() once for each operation |
4607 | DMEC | AE | There may only be one operation in a scan transaction |
4608 | DMEC | AE | You can not takeOverScan unless you have used openScanExclusive |
4609 | DMEC | AE | You must call nextScanResult before trying to takeOverScan |
4232 | DMEC | AE | Parallelism can only be between 1 and 240 |
4707 | DMEC | AE | Too many event have been defined |
4708 | DMEC | AE | Event name is too long |
4709 | DMEC | AE | Can't accept more subscribers |
4710 | DMEC | AE | Event not found |
4711 | DMEC | AE | Creation of event failed |
4712 | DMEC | AE | Stopped event operation does not exist. Already stopped? |
311 | DMEC | AE | Undefined partition used in setPartitionId |
771 | HA_WRONG_CREATE_OPTION | AE | Given NODEGROUP doesn't exist in this cluster |
789 | HA_WRONG_CREATE_OPTION | AE | Logfile group not found |
793 | DMEC | AE | Object definition too big |
776 | DMEC | AE | Index created on temporary table must itself be temporary |
777 | DMEC | AE | Cannot create a temporary index on a non-temporary table |
778 | DMEC | AE | A temporary table or index must be specified as not logging |
794 | DMEC | AE | Schema feature requires data node upgrade |
1306 | DMEC | AE | Backup not supported in diskless mode (change Diskless) |
1342 | DMEC | AE | Backup failed to allocate buffers (check configuration) |
1343 | DMEC | AE | Backup failed to setup fs buffers (check configuration) |
1344 | DMEC | AE | Backup failed to allocate tables (check configuration) |
1345 | DMEC | AE | Backup failed to insert file header (check configuration) |
1346 | DMEC | AE | Backup failed to insert table list (check configuration) |
1347 | DMEC | AE | Backup failed to allocate table memory (check configuration) |
1348 | DMEC | AE | Backup failed to allocate file record (check configuration) |
1349 | DMEC | AE | Backup failed to allocate attribute record (check configuration) |
1329 | DMEC | AE | Backup during software upgrade not supported |
1701 | DMEC | AE | Node already reserved |
1702 | DMEC | AE | Node already connected |
1704 | DMEC | AE | Node type mismatch |
720 | DMEC | AE | Attribute name reused in table definition |
4004 | DMEC | AE | Attribute name or id not found in the table |
4100 | DMEC | AE | Status Error in NDB |
4101 | DMEC | AE | No connections to NDB available and connect failed |
4102 | DMEC | AE | Type in NdbTamper not correct |
4103 | DMEC | AE | No schema connections to NDB available and connect failed |
4104 | DMEC | AE | Ndb Init in wrong state, destroy Ndb object and create a new |
4105 | DMEC | AE | Too many Ndb objects |
4106 | DMEC | AE | All Not NULL attribute have not been defined |
4114 | DMEC | AE | Transaction is already completed |
4116 | DMEC | AE | Operation was not defined correctly, probably missing a key |
4117 | DMEC | AE | Could not start transporter, configuration error |
4118 | DMEC | AE | Parameter error in API call |
4300 | DMEC | AE | Tuple Key Type not correct |
4301 | DMEC | AE | Fragment Type not correct |
4302 | DMEC | AE | Minimum Load Factor not correct |
4303 | DMEC | AE | Maximum Load Factor not correct |
4304 | DMEC | AE | Maximum Load Factor smaller than Minimum |
4305 | DMEC | AE | K value must currently be set to 6 |
4306 | DMEC | AE | Memory Type not correct |
4307 | DMEC | AE | Invalid table name |
4308 | DMEC | AE | Attribute Size not correct |
4309 | DMEC | AE | Fixed array too large, maximum 64000 bytes |
4310 | DMEC | AE | Attribute Type not correct |
4311 | DMEC | AE | Storage Mode not correct |
4312 | DMEC | AE | Null Attribute Type not correct |
4313 | DMEC | AE | Index only storage for non-key attribute |
4314 | DMEC | AE | Storage Type of attribute not correct |
4315 | DMEC | AE | No more key attributes allowed after defining variable length key attribute |
4316 | DMEC | AE | Key attributes are not allowed to be NULL attributes |
4317 | DMEC | AE | Too many primary keys defined in table |
4318 | DMEC | AE | Invalid attribute name or number |
4319 | DMEC | AE | createAttribute called at erroneus place |
4322 | DMEC | AE | Attempt to define distribution key when not prepared to |
4323 | DMEC | AE | Distribution Key set on table but not defined on first attribute |
4324 | DMEC | AE | Attempt to define distribution group when not prepared to |
4325 | DMEC | AE | Distribution Group set on table but not defined on first attribute |
4326 | DMEC | AE | Distribution Group with erroneus number of bits |
4327 | DMEC | AE | Distribution key is only supported on part of primary key |
4328 | DMEC | AE | Disk memory attributes not yet supported |
4329 | DMEC | AE | Variable stored attributes not yet supported |
4340 | DMEC | AE | Result or attribute record must be a base table ndbrecord, not an index ndbrecord |
4400 | DMEC | AE | Status Error in NdbSchemaCon |
4401 | DMEC | AE | Only one schema operation per schema transaction |
4402 | DMEC | AE | No schema operation defined before calling execute |
4410 | DMEC | AE | Schema transaction is already started |
4411 | DMEC | AE | Schema transaction not possible until upgrade complete |
4501 | DMEC | AE | Insert in hash table failed when getting table information from Ndb |
4502 | DMEC | AE | GetValue not allowed in Update operation |
4503 | DMEC | AE | GetValue not allowed in Insert operation |
4504 | DMEC | AE | SetValue not allowed in Read operation |
4505 | DMEC | AE | NULL value not allowed in primary key search |
4506 | DMEC | AE | Missing getValue/setValue when calling execute |
4507 | DMEC | AE | Missing operation request when calling execute |
4508 | DMEC | AE | GetValue not allowed for NdbRecord defined operation |
4509 | DMEC | AE | Non SF_MultiRange scan cannot have more than one bound |
4510 | DMEC | AE | User specified partition id not allowed for scan takeover operation |
4511 | DMEC | AE | Blobs not allowed in NdbRecord delete result record |
4512 | DMEC | AE | Incorrect combination of OperationOptions optionsPresent, extraGet/SetValues ptr and numExtraGet/SetValues |
4513 | DMEC | AE | Only one scan bound allowed for non-NdbRecord setBound() API |
4514 | DMEC | AE | Can only call setBound/equal() for an NdbIndexScanOperation |
4515 | DMEC | AE | Method not allowed for NdbRecord, use OperationOptions or ScanOptions structure instead |
4516 | DMEC | AE | Illegal instruction in interpreted program |
4517 | DMEC | AE | Bad label in branch instruction |
4518 | DMEC | AE | Too many instructions in interpreted program |
4519 | DMEC | AE | NdbInterpretedCode::finalise() not called |
4520 | DMEC | AE | Call to undefined subroutine |
4521 | DMEC | AE | Call to undefined subroutine, internal error |
4522 | DMEC | AE | setBound() called twice for same key |
4523 | DMEC | AE | Pseudo columns not supported by NdbRecord |
4524 | DMEC | AE | NdbInterpretedCode is for different table |
4535 | DMEC | AE | Attempt to set bound on non key column |
4536 | DMEC | AE | NdbScanFilter constructor taking NdbOperation is not supported for NdbRecord |
4537 | DMEC | AE | Wrong API. Use NdbInterpretedCode for NdbRecord operations |
4538 | DMEC | AE | NdbInterpretedCode instruction requires that table is set |
4539 | DMEC | AE | NdbInterpretedCode not supported for operation type |
4540 | DMEC | AE | Attempt to pass an Index column to createRecord. Use base table columns only |
4542 | DMEC | AE | Unknown partition information type |
4543 | DMEC | AE | Duplicate partitioning information supplied |
4544 | DMEC | AE | Wrong partitionInfo type for table |
4545 | DMEC | AE | Invalid or Unsupported PartitionInfo structure |
4546 | DMEC | AE | Explicit partitioning info not allowed for table and operation |
4547 | DMEC | AE | RecordSpecification has overlapping offsets |
4548 | DMEC | AE | RecordSpecification has too many elements |
4549 | DMEC | AE | getLockHandle only supported for primary key read with a lock |
4550 | DMEC | AE | Cannot releaseLockHandle until operation executed |
4551 | DMEC | AE | NdbLockHandle already released |
4552 | DMEC | AE | NdbLockHandle does not belong to transaction |
4553 | DMEC | AE | NdbLockHandle original operation not executed successfully |
4554 | DMEC | AE | NdbBlob can only be closed from Active state |
4555 | DMEC | AE | NdbBlob cannot be closed with pending operations |
4200 | DMEC | AE | Status Error when defining an operation |
4201 | DMEC | AE | Variable Arrays not yet supported |
4202 | DMEC | AE | Set value on tuple key attribute is not allowed |
4203 | DMEC | AE | Trying to set a NOT NULL attribute to NULL |
4204 | DMEC | AE | Set value and Read/Delete Tuple is incompatible |
4205 | DMEC | AE | No Key attribute used to define tuple |
4206 | DMEC | AE | Not allowed to equal key attribute twice |
4207 | DMEC | AE | Key size is limited to 4092 bytes |
4208 | DMEC | AE | Trying to read a non-stored attribute |
4209 | DMEC | AE | Length parameter in equal/setValue is incorrect |
4210 | DMEC | AE | Ndb sent more info than the length he specified |
4211 | DMEC | AE | Inconsistency in list of NdbRecAttr-objects |
4212 | DMEC | AE | Ndb reports NULL value on Not NULL attribute |
4213 | DMEC | AE | Not all data of an attribute has been received |
4214 | DMEC | AE | Not all attributes have been received |
4215 | DMEC | AE | More data received than reported in TCKEYCONF message |
4216 | DMEC | AE | More than 8052 bytes in setValue cannot be handled |
4217 | DMEC | AE | It is not allowed to increment any other than unsigned ints |
4218 | DMEC | AE | Currently not allowed to increment NULL-able attributes |
4219 | DMEC | AE | Maximum size of interpretative attributes are 64 bits |
4220 | DMEC | AE | Maximum size of interpretative attributes are 64 bits |
4221 | DMEC | AE | Trying to jump to a non-defined label |
4222 | DMEC | AE | Label was not found, internal error |
4223 | DMEC | AE | Not allowed to create jumps to yourself |
4224 | DMEC | AE | Not allowed to jump to a label in a different subroutine |
4225 | DMEC | AE | All primary keys defined, call setValue/getValue |
4226 | DMEC | AE | Bad number when defining a label |
4227 | DMEC | AE | Bad number when defining a subroutine |
4228 | DMEC | AE | Illegal interpreter function in scan definition |
4229 | DMEC | AE | Illegal register in interpreter function definition |
4230 | DMEC | AE | Illegal state when calling getValue, probably not a read |
4231 | DMEC | AE | Illegal state when calling interpreter routine |
4233 | DMEC | AE | Calling execute (synchronous) when already prepared asynchronous transaction exists |
4234 | DMEC | AE | Illegal to call setValue in this state |
4235 | DMEC | AE | No callback from execute |
4236 | DMEC | AE | Trigger name too long |
4237 | DMEC | AE | Too many triggers |
4238 | DMEC | AE | Trigger not found |
4239 | DMEC | AE | Trigger with given name already exists |
4240 | DMEC | AE | Unsupported trigger type |
4241 | DMEC | AE | Index name too long |
4242 | DMEC | AE | Too many indexes |
4243 | DMEC | AE | Index not found |
4247 | DMEC | AE | Illegal index/trigger create/drop/alter request |
4248 | DMEC | AE | Trigger/index name invalid |
4249 | DMEC | AE | Invalid table |
4250 | DMEC | AE | Invalid index type or index logging option |
4251 | HA_ERR_FOUND_DUPP_UNIQUE | AE | Cannot create unique index, duplicate keys found |
4252 | DMEC | AE | Failed to allocate space for index |
4253 | DMEC | AE | Failed to create index table |
4254 | DMEC | AE | Table not an index table |
4255 | DMEC | AE | Hash index attributes must be specified in same order as table attributes |
4258 | DMEC | AE | Cannot create unique index, duplicate attributes found in definition |
4259 | DMEC | AE | Invalid set of range scan bounds |
4264 | DMEC | AE | Invalid usage of blob attribute |
4265 | DMEC | AE | The method is not valid in current blob state |
4266 | DMEC | AE | Invalid blob seek position |
4335 | DMEC | AE | Only one autoincrement column allowed per table. Having a table without primary key uses an autoincremented hidden key, i.e. a table without a primary key can not have an autoincremented column |
4271 | DMEC | AE | Invalid index object, not retrieved via getIndex() |
4272 | DMEC | AE | Table definition has undefined column |
4275 | DMEC | AE | The blob method is incompatible with operation type or lock mode |
4276 | DMEC | AE | Missing NULL ptr in end of keyData list |
4277 | DMEC | AE | Key part len is to small for column |
4278 | DMEC | AE | Supplied buffer to small |
4279 | DMEC | AE | Malformed string |
4280 | DMEC | AE | Inconsistent key part length |
4281 | DMEC | AE | Too many keys specified for key bound in scanIndex |
4282 | DMEC | AE | range_no not strictly increasing in ordered multi-range index scan |
4283 | DMEC | AE | key_record in index scan is not an index ndbrecord |
4284 | DMEC | AE | Cannot mix NdbRecAttr and NdbRecord methods in one operation |
4285 | DMEC | AE | NULL NdbRecord pointer |
4286 | DMEC | AE | Invalid range_no (must be < 4096) |
4287 | DMEC | AE | The key_record and attribute_record in primary key operation do not belong to the same table |
4288 | DMEC | AE | Blob handle for column not available |
4289 | DMEC | AE | API version mismatch or wrong sizeof(NdbDictionary::RecordSpecification) |
4290 | DMEC | AE | Missing column specification in NdbDictionary::RecordSpecification |
4291 | DMEC | AE | Duplicate column specification in NdbDictionary::RecordSpecification |
4292 | DMEC | AE | NdbRecord for tuple access is not an index key NdbRecord |
4341 | DMEC | AE | Not all keys read when using option SF_OrderBy |
4293 | DMEC | AE | Error returned from application scanIndex() callback |
4294 | DMEC | AE | Scan filter is too large, discarded |
4295 | DMEC | AE | Column is NULL in Get/SetValueSpec structure |
4296 | DMEC | AE | Invalid AbortOption |
4297 | DMEC | AE | Invalid or unsupported OperationOptions structure |
4298 | DMEC | AE | Invalid or unsupported ScanOptions structure |
4299 | DMEC | AE | Incorrect combination of ScanOption flags, extraGetValues ptr and numExtraGetValues |
NO_CONTACT_WITH_PROCESS | DMEC | AE | No contact with the process (dead ?). |
WRONG_PROCESS_TYPE | DMEC | AE | The process has wrong type. Expected a DB process. |
SEND_OR_RECEIVE_FAILED | DMEC | AE | Send to process or receive failed. |
INVALID_ERROR_NUMBER | DMEC | AE | Invalid error number. Should be >= 0. |
INVALID_TRACE_NUMBER | DMEC | AE | Invalid trace number. |
INVALID_BLOCK_NAME | DMEC | AE | Invalid block name |
NODE_SHUTDOWN_IN_PROGESS | DMEC | AE | Node shutdown in progress |
SYSTEM_SHUTDOWN_IN_PROGRESS | DMEC | AE | System shutdown in progress |
NODE_SHUTDOWN_WOULD_CAUSE_SYSTEM_CRASH | DMEC | AE | Node shutdown would cause system crash |
UNSUPPORTED_NODE_SHUTDOWN | DMEC | AE | Unsupported multi node shutdown. Abort option required. |
NODE_NOT_API_NODE | DMEC | AE | The specified node is not an API node. |
OPERATION_NOT_ALLOWED_START_STOP | DMEC | AE | Operation not allowed while nodes are starting or stopping. |
NO_CONTACT_WITH_DB_NODES | DMEC | AE | No contact with database nodes |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
626 | HA_ERR_KEY_NOT_FOUND | ND | Tuple did not exist |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
630 | HA_ERR_FOUND_DUPP_KEY | CV | Tuple already existed when attempting to insert |
839 | DMEC | CV | Illegal null attribute |
840 | DMEC | CV | Trying to set a NOT NULL attribute to NULL |
893 | HA_ERR_FOUND_DUPP_KEY | CV | Constraint violation e.g. duplicate value in unique index |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
4713 | DMEC | SE | Column defined in event does not exist in table |
703 | DMEC | SE | Invalid table format |
704 | DMEC | SE | Attribute name too long |
705 | DMEC | SE | Table name too long |
707 | DMEC | SE | No more table metadata records (increase MaxNoOfTables) |
708 | DMEC | SE | No more attribute metadata records (increase MaxNoOfAttributes) |
709 | HA_ERR_NO_SUCH_TABLE | SE | No such table existed |
710 | DMEC | SE | Internal: Get by table name not supported, use table id. |
723 | HA_ERR_NO_SUCH_TABLE | SE | No such table existed |
736 | DMEC | SE | Unsupported array size |
737 | HA_WRONG_CREATE_OPTION | SE | Attribute array size too big |
738 | HA_WRONG_CREATE_OPTION | SE | Record too big |
739 | HA_WRONG_CREATE_OPTION | SE | Unsupported primary key length |
740 | HA_WRONG_CREATE_OPTION | SE | Nullable primary key not supported |
741 | DMEC | SE | Unsupported alter table |
743 | HA_WRONG_CREATE_OPTION | SE | Unsupported character set in table or index |
744 | DMEC | SE | Character string is invalid for given character set |
745 | HA_WRONG_CREATE_OPTION | SE | Distribution key not supported for char attribute (use binary attribute) |
779 | HA_WRONG_CREATE_OPTION | SE | Invalid undo buffer size |
791 | HA_WRONG_CREATE_OPTION | SE | Too many total bits in bitfields |
764 | HA_WRONG_CREATE_OPTION | SE | Invalid extent size |
765 | DMEC | SE | Out of filegroup records |
750 | IE | SE | Invalid file type |
751 | DMEC | SE | Out of file records |
752 | DMEC | SE | Invalid file format |
753 | IE | SE | Invalid filegroup for file |
754 | IE | SE | Invalid filegroup version when creating file |
755 | HA_WRONG_CREATE_OPTION | SE | Invalid tablespace |
756 | DMEC | SE | Index on disk column is not supported |
757 | DMEC | SE | Varsize bitfield not supported |
758 | DMEC | SE | Tablespace has changed |
759 | DMEC | SE | Invalid tablespace version |
761 | DMEC | SE | Unable to drop table as backup is in progress |
762 | DMEC | SE | Unable to alter table as backup is in progress |
766 | DMEC | SE | Cant drop file, no such file |
767 | DMEC | SE | Cant drop filegroup, no such filegroup |
768 | DMEC | SE | Cant drop filegroup, filegroup is used |
769 | DMEC | SE | Drop undofile not supported, drop logfile group instead |
770 | DMEC | SE | Cant drop file, file is used |
774 | DMEC | SE | Invalid schema object for drop |
790 | HA_WRONG_CREATE_OPTION | SE | Invalid hashmap |
241 | HA_ERR_TABLE_DEF_CHANGED | SE | Invalid schema object version |
283 | HA_ERR_NO_SUCH_TABLE | SE | Table is being dropped |
284 | HA_ERR_TABLE_DEF_CHANGED | SE | Table not defined in transaction coordinator |
285 | DMEC | SE | Unknown table error in transaction coordinator |
881 | DMEC | SE | Unable to create table, out of data pages (increase DataMemory) |
906 | DMEC | SE | Unsupported attribute type in index |
907 | DMEC | SE | Unsupported character set in table or index |
1224 | HA_WRONG_CREATE_OPTION | SE | Too many fragments |
1225 | DMEC | SE | Table not defined in local query handler |
1226 | DMEC | SE | Table is being dropped |
1227 | HA_WRONG_CREATE_OPTION | SE | Invalid schema version |
1228 | DMEC | SE | Cannot use drop table for drop index |
1229 | DMEC | SE | Too long frm data supplied |
1231 | DMEC | SE | Invalid table or index to scan |
1232 | DMEC | SE | Invalid table or index to scan |
1503 | DMEC | SE | Out of filegroup records |
1504 | DMEC | SE | Out of logbuffer memory |
1508 | DMEC | SE | Out of file records |
1509 | DMEC | SE | File system error, check if path,permissions etc |
1512 | DMEC | SE | File read error |
1514 | DMEC | SE | Currently there is a limit of one logfile group |
1515 | DMEC | SE | Currently there is a 4G limit of one undo/data-file in 32-bit host |
1516 | DMEC | SE | File too small |
773 | DMEC | SE | Out of string memory, please modify StringMemory config parameter |
775 | DMEC | SE | Create file is not supported when Diskless=1 |
792 | DMEC | SE | Default value for primary key column not supported |
1407 | DMEC | SE | Subscription not found in subscriber manager |
1415 | DMEC | SE | Subscription not unique in subscriber manager |
1417 | DMEC | SE | Table in suscription not defined, probably dropped |
1418 | DMEC | SE | Subscription dropped, no new subscribers allowed |
1419 | DMEC | SE | Subscription already dropped |
1421 | DMEC | SE | Partially connected API in NdbOperation::execute() |
1422 | DMEC | SE | Out of subscription records |
1423 | DMEC | SE | Out of table records in SUMA |
1424 | DMEC | SE | Out of MaxNoOfConcurrentSubOperations |
1425 | DMEC | SE | Subscription being defined...while trying to stop subscriber |
1426 | DMEC | SE | No such subscriber |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
746 | DMEC | OE | Event name already exists |
4244 | HA_ERR_TABLE_EXIST | OE | Index or table with given name already exists |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
1321 | DMEC | UD | Backup aborted by user request |
4260 | DMEC | UD | NdbScanFilter: Operator is not defined in NdbScanFilter::Group |
4261 | DMEC | UD | NdbScanFilter: Column is NULL |
4262 | DMEC | UD | NdbScanFilter: Condition is out of bounds |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
623 | HA_ERR_RECORD_FILE_FULL | IS | 623 |
624 | HA_ERR_RECORD_FILE_FULL | IS | 624 |
625 | HA_ERR_INDEX_FILE_FULL | IS | Out of memory in Ndb Kernel, hash index part (increase IndexMemory) |
633 | HA_ERR_INDEX_FILE_FULL | IS | Table fragment hash index has reached maximum possible size |
640 | DMEC | IS | Too many hash indexes (should not happen) |
826 | HA_ERR_RECORD_FILE_FULL | IS | Too many tables and attributes (increase MaxNoOfAttributes or MaxNoOfTables) |
827 | HA_ERR_RECORD_FILE_FULL | IS | Out of memory in Ndb Kernel, table data (increase DataMemory) |
902 | HA_ERR_RECORD_FILE_FULL | IS | Out of memory in Ndb Kernel, ordered index data (increase DataMemory) |
903 | HA_ERR_INDEX_FILE_FULL | IS | Too many ordered indexes (increase MaxNoOfOrderedIndexes) |
904 | HA_ERR_INDEX_FILE_FULL | IS | Out of fragment records (increase MaxNoOfOrderedIndexes) |
905 | DMEC | IS | Out of attribute records (increase MaxNoOfAttributes) |
1601 | HA_ERR_RECORD_FILE_FULL | IS | Out extents, tablespace full |
1602 | DMEC | IS | No datafile in tablespace |
747 | DMEC | IS | Out of event records |
908 | DMEC | IS | Invalid ordered index tree node size |
1303 | DMEC | IS | Out of resources |
1412 | DMEC | IS | Can't accept more subscribers, out of space in pool |
1416 | DMEC | IS | Can't accept more subscriptions, out of space in pool |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
217 | DMEC | TR | 217 |
218 | DMEC | TR | Out of LongMessageBuffer |
219 | DMEC | TR | 219 |
233 | DMEC | TR | Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations) |
275 | DMEC | TR | Out of transaction records for complete phase (increase MaxNoOfConcurrentTransactions) |
279 | DMEC | TR | Out of transaction markers in transaction coordinator |
414 | DMEC | TR | 414 |
418 | DMEC | TR | Out of transaction buffers in LQH |
419 | DMEC | TR | 419 |
245 | DMEC | TR | Too many active scans |
488 | DMEC | TR | Too many active scans |
489 | DMEC | TR | Too many active scans |
490 | DMEC | TR | Too many active scans |
805 | DMEC | TR | Out of attrinfo records in tuple manager |
830 | DMEC | TR | Out of add fragment operation records |
873 | DMEC | TR | Out of attrinfo records for scan in tuple manager |
899 | DMEC | TR | Rowid already allocated |
1217 | DMEC | TR | Out of operation records in local data manager (increase MaxNoOfLocalOperations) |
1218 | DMEC | TR | Send Buffers overloaded in NDB kernel |
1220 | DMEC | TR | REDO log files overloaded (increase FragmentLogFileSize) |
1222 | DMEC | TR | Out of transaction markers in LQH |
4021 | DMEC | TR | Out of Send Buffer space in NDB API |
4022 | DMEC | TR | Out of Send Buffer space in NDB API |
4032 | DMEC | TR | Out of Send Buffer space in NDB API |
1501 | DMEC | TR | Out of undo space |
288 | DMEC | TR | Out of index operations in transaction coordinator (increase MaxNoOfConcurrentIndexOperations) |
289 | DMEC | TR | Out of transaction buffer memory in TC (increase TransactionBufferMemory) |
780 | DMEC | TR | Too many schema transactions |
783 | DMEC | TR | Too many schema operations |
785 | DMEC | TR | Schema object is busy with another schema transaction |
291 | DMEC | TR | Out of scanfrag records in TC (increase MaxNoOfLocalScans) |
784 | DMEC | TR | Invalid schema transaction state |
788 | DMEC | TR | Missing schema operation at takeover of schema transaction |
748 | DMEC | TR | Busy during read of event table |
1350 | DMEC | TR | Backup failed: file already exists (use 'START BACKUP <backup id>') |
1411 | DMEC | TR | Subscriber manager busy with adding/removing a subscriber |
1413 | DMEC | TR | Subscriber manager busy with adding the subscription |
1414 | DMEC | TR | Subscriber manager has subscribers on this subscription |
1420 | DMEC | TR | Subscriber manager busy with adding/removing a table |
2810 | DMEC | TR | No space left on the device |
2811 | DMEC | TR | Error with file permissions, please check file system |
2815 | DMEC | TR | Error in reading files, please check file system |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
286 | DMEC | NR | Node failure caused abort of transaction |
250 | DMEC | NR | Node where lock was held crashed, restart scan transaction |
499 | DMEC | NR | Scan take over error, restart scan transaction |
1204 | DMEC | NR | Temporary failure, distribution changed |
4002 | DMEC | NR | Send to NDB failed |
4010 | DMEC | NR | Node failure caused abort of transaction |
4025 | DMEC | NR | Node failure caused abort of transaction |
4027 | DMEC | NR | Node failure caused abort of transaction |
4028 | DMEC | NR | Node failure caused abort of transaction |
4029 | DMEC | NR | Node failure caused abort of transaction |
4031 | DMEC | NR | Node failure caused abort of transaction |
4033 | DMEC | NR | Send to NDB failed |
4115 | DMEC | NR | Transaction was committed but all read information was not ""received due to node crash |
4119 | DMEC | NR | Simple/dirty read failed due to node failure |
786 | DMEC | NR | Schema transaction aborted due to node-failure |
1405 | DMEC | NR | Subscriber manager busy with node recovery |
1427 | DMEC | NR | Api node died, when SUB_START_REQ reached node |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
701 | DMEC | OL | System busy with other schema operation |
711 | DMEC | OL | System busy with node restart, schema operations not allowed |
410 | DMEC | OL | REDO log files overloaded (decrease TimeBetweenLocalCheckpoints or increase NoOfFragmentLogFiles) |
677 | DMEC | OL | Index UNDO buffers overloaded (increase UndoIndexBuffer) |
891 | DMEC | OL | Data UNDO buffers overloaded (increase UndoDataBuffer) |
1221 | DMEC | OL | REDO buffers overloaded (increase RedoBuffer) |
4006 | DMEC | OL | Connect failure - out of connection objects (increase MaxNoOfConcurrentTransactions) |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
266 | HA_ERR_LOCK_WAIT_TIMEOUT | TO | Time-out in NDB, probably caused by deadlock |
274, HA_ERR_LOCK_WAIT_TIMEOUT, TO, "Time-out in NDB, probably caused by deadlock" }, { 237 | HA_ERR_LOCK_WAIT_TIMEOUT | TO | Transaction had timed out when trying to commit it |
4351 | DMEC | TO | Timeout/deadlock during index build |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
280 | DMEC | NS | Transaction aborted due to node shutdown |
270 | DMEC | NS | Transaction aborted due to node shutdown |
1223 | DMEC | NS | Read operation aborted due to node shutdown |
4023 | DMEC | NS | Transaction aborted due to node shutdown |
4030 | DMEC | NS | Transaction aborted due to node shutdown |
4034 | DMEC | NS | Transaction aborted due to node shutdown |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
702 | DMEC | IT | Request to non-master |
787 | DMEC | IT | Schema transaction aborted |
1703 | DMEC | IT | Node failure handling not completed |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
4007 | DMEC | UR | Send to ndbd node failed |
4008 | DMEC | UR | Receive from NDB failed |
4009 | HA_ERR_NO_CONNECTION | UR | Cluster Failure |
4012 | DMEC | UR | Request ndbd time-out, maybe due to high load or communication problems |
4013 | DMEC | UR | Request timed out in waiting for node failure |
4024 | DMEC | UR | Time-out, most likely caused by simple read or cluster failure |
NDB Error Code | MySQL Error Code | NDB Error Classification | Error Message |
---|---|---|---|
896 | DMEC | IE | Tuple corrupted - wrong checksum or column data in invalid format |
901 | DMEC | IE | Inconsistent ordered index. The index needs to be dropped and recreated |
202 | DMEC | IE | 202 |
203 | DMEC | IE | 203 |
207 | DMEC | IE | 207 |
208 | DMEC | IE | 208 |
209 | DMEC | IE | Communication problem, signal error |
220 | DMEC | IE | 220 |
230 | DMEC | IE | 230 |
232 | DMEC | IE | 232 |
238 | DMEC | IE | 238 |
271 | DMEC | IE | Simple Read transaction without any attributes to read |
272 | DMEC | IE | Update operation without any attributes to update |
276 | DMEC | IE | 276 |
277 | DMEC | IE | 277 |
278 | DMEC | IE | 278 |
287 | DMEC | IE | Index corrupted |
290 | DMEC | IE | Corrupt key in TC, unable to xfrm |
293 | DMEC | IE | Inconsistent trigger state in TC block |
292 | DMEC | IE | Inconsistent index state in TC block |
631 | DMEC | IE | 631 |
632 | DMEC | IE | 632 |
706 | DMEC | IE | Inconsistency during table creation |
781 | DMEC | IE | Invalid schema transaction key from NDB API |
782 | DMEC | IE | Invalid schema transaction id from NDB API |
809 | DMEC | IE | 809 |
812 | DMEC | IE | 812 |
833 | DMEC | IE | 833 |
871 | DMEC | IE | 871 |
882 | DMEC | IE | 882 |
883 | DMEC | IE | 883 |
887 | DMEC | IE | 887 |
888 | DMEC | IE | 888 |
890 | DMEC | IE | 890 |
4000 | DMEC | IE | MEMORY ALLOCATION ERROR |
4001 | DMEC | IE | Signal Definition Error |
4005 | DMEC | IE | Internal Error in NdbApi |
4011 | DMEC | IE | Internal Error in NdbApi |
4107 | DMEC | IE | Simple Transaction and Not Start |
4108 | DMEC | IE | Faulty operation type |
4109 | DMEC | IE | Faulty primary key attribute length |
4110 | DMEC | IE | Faulty length in ATTRINFO signal |
4111 | DMEC | IE | Status Error in NdbConnection |
4113 | DMEC | IE | Too many operations received |
4320 | DMEC | IE | Cannot use the same object twice to create table |
4321 | DMEC | IE | Trying to start two schema transactions |
4344 | DMEC | IE | Only DBDICT and TRIX can send requests to TRIX |
4345 | DMEC | IE | TRIX block is not available yet, probably due to node failure |
4346 | DMEC | IE | Internal error at index create/build |
4347 | DMEC | IE | Bad state at alter index |
4348 | DMEC | IE | Inconsistency detected at alter index |
4349 | DMEC | IE | Inconsistency detected at index usage |
4350 | DMEC | IE | Transaction already aborted |
294 | DMEC | IE | Unlocked operation has out of range index |
295 | DMEC | IE | Unlocked operation has invalid state |
298 | DMEC | IE | Invalid distribution key |
416 | DMEC | IE | Bad state handling unlock request |
4731 | DMEC | IE | Event not found |
306 | DMEC | IE | Out of fragment records in DIH |
772 | HA_WRONG_CREATE_OPTION | IE | Given fragmentType doesn't exist |
749 | HA_WRONG_CREATE_OPTION | IE | Primary Table in wrong state |
795 | DMEC | IE | Out of LongMessageBuffer in DICT |
1502 | DMEC | IE | Filegroup already exists |
1505 | DMEC | IE | Invalid filegroup |
1506 | DMEC | IE | Invalid filegroup version |
1507 | DMEC | IE | File no already inuse |
1510 | DMEC | IE | File meta data error |
1511 | DMEC | IE | Out of memory |
1513 | DMEC | IE | Filegroup not online |
1300 | DMEC | IE | Undefined error |
1301 | DMEC | IE | Backup issued to not master (reissue command to master) |
1302 | DMEC | IE | Out of backup record |
1304 | DMEC | IE | Sequence failure |
1305 | DMEC | IE | Backup definition not implemented |
1322 | DMEC | IE | Backup already completed |
1323 | DMEC | IE | 1323 |
1324 | DMEC | IE | Backup log buffer full |
1325 | DMEC | IE | File or scan error |
1326 | DMEC | IE | Backup abortet due to node failure |
1327 | DMEC | IE | 1327 |
1340 | DMEC | IE | Backup undefined error |
1700 | DMEC | IE | Undefined error |
4263 | DMEC | IE | Invalid blob attributes or invalid blob parts table |
4267 | DMEC | IE | Corrupted blob value |
4268 | DMEC | IE | Error in blob head update forced rollback of transaction |
4269 | DMEC | IE | No connection to ndb management server |
4270 | DMEC | IE | Unknown blob error |
4273 | DMEC | IE | No blob table in dict cache |
4274 | DMEC | IE | Corrupted main table PK in blob operation |
The following table lists the classification codes used in
Section 5.2, “NDB API Errors and Error Handling”, and their descriptions.
These can also be found in the file
/storage/ndb/src/ndbapi/ndberror.c
.
Classification Code | Error Status | Description |
---|---|---|
NE | Success | No error |
AE | Permanent error | Application error |
CE | Permanent error | Configuration or application error |
ND | Permanent error | No data found |
CV | Permanent error | Constraint violation |
SE | Permanent error | Schema error |
OE | Permanent error | Schema object already exists |
UD | Permanent error | User defined error |
IS | Permanent error | Insufficient space |
TR | Temporary error | Temporary Resource error |
NR | Temporary error | Node Recovery error |
OL | Temporary error | Overload error |
TO | Temporary error | Timeout expired |
NS | Temporary error | Node shutdown |
IT | Temporary error | Internal temporary |
UR | Unknown result | Unknown result error |
UE | Unknown result | Unknown error code |
IE | Permanent error | Internal error |
NI | Permanent error | Function not implemented |
DMEC | Default MySQL error code | Used for NDB errors that are not otherwise mapped to MySQL error codes |
This section contains exit codes and error messages given when a data node process stops prematurely.
This section lists all the error messages that can be returned
when a data node process halts due to an error, arranged in most
cases according to the affected NDB
kernel
block.
For more information about kernel blocks, see
Section 6.4, “NDB
Kernel Blocks”
The meanings of the values given in the Classification column of each of the following tables is given in Section 5.3.2, “ndbd Error Classifications”.
This section contains ndbd error codes that
are either generic in nature or otherwise not associated with
a specific NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_GENERIC | XRE | Generic error |
NDBD_EXIT_PRGERR | XIE | Assertion |
NDBD_EXIT_NODE_NOT_IN_CONFIG | XCE | node id in the configuration has the wrong type, (that is, not an NDB node) |
NDBD_EXIT_SYSTEM_ERROR | XIE | System error, node killed during node restart by other node |
NDBD_EXIT_INDEX_NOTINRANGE | XIE | Array index out of range |
NDBD_EXIT_ARBIT_SHUTDOWN | XAE | Node lost connection to other nodes and can not form a unpartitioned cluster, please investigate if there are error(s) on other node(s) |
NDBD_EXIT_PARTITIONED_SHUTDOWN | XAE | Partitioned cluster detected. Please check if cluster is already running |
NDBD_EXIT_NODE_DECLARED_DEAD | XAE | Node declared dead. See error log for details |
NDBD_EXIT_POINTER_NOTINRANGE | XIE | Pointer too large |
NDBD_EXIT_SR_OTHERNODEFAILED | XRE | Another node failed during system restart, please investigate error(s) on other node(s) |
NDBD_EXIT_NODE_NOT_DEAD | XRE | Internal node state conflict, most probably resolved by restarting node again |
NDBD_EXIT_SR_REDOLOG | XFI | Error while reading the REDO log |
NDBD_EXIT_SR_SCHEMAFILE | XFI | Error while reading the schema file |
2311 | XIE | Conflict when selecting restart type |
NDBD_EXIT_NO_MORE_UNDOLOG | XCR | No more free UNDO log, increase UndoIndexBuffer |
NDBD_EXIT_SR_UNDOLOG | XFI | Error while reading the datapages and UNDO log |
NDBD_EXIT_SINGLE_USER_MODE | XRE | Data node is not allowed to get added to the cluster while it is in single user mode |
NDBD_EXIT_MEMALLOC | XCE | Memory allocation failure, please decrease some configuration parameters |
NDBD_EXIT_BLOCK_JBUFCONGESTION | XIE | Job buffer congestion |
NDBD_EXIT_TIME_QUEUE_SHORT | XIE | Error in short time queue |
NDBD_EXIT_TIME_QUEUE_LONG | XIE | Error in long time queue |
NDBD_EXIT_TIME_QUEUE_DELAY | XIE | Error in time queue, too long delay |
NDBD_EXIT_TIME_QUEUE_INDEX | XIE | Time queue index out of range |
NDBD_EXIT_BLOCK_BNR_ZERO | XIE | Send signal error |
NDBD_EXIT_WRONG_PRIO_LEVEL | XIE | Wrong priority level when sending signal |
NDBD_EXIT_NDBREQUIRE | XIE | Internal program error (failed ndbrequire) |
NDBD_EXIT_NDBASSERT | XIE | Internal program error (failed ndbassert) |
NDBD_EXIT_ERROR_INSERT | XNE | Error insert executed |
NDBD_EXIT_INVALID_CONFIG | XCE | Invalid configuration received from Management Server |
NDBD_EXIT_RESOURCE_ALLOC_ERROR | XCE | Resource allocation error, please review the configuration |
NDBD_EXIT_OS_SIGNAL_RECEIVED | XIE | Error OS signal received |
NDBD_EXIT_SR_RESTARTCONFLICT | XRE | Partial system restart causing conflicting file systems |
This section contains ndbd error codes that
are associated with problems in the VM
(virtal machine) NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_OUT_OF_LONG_SIGNAL_MEMORY | XCR | Signal lost, out of long signal memory, please increase LongMessageBuffer |
NDBD_EXIT_WATCHDOG_TERMINATE | XIE | WatchDog terminate, internal error or massive overload on the machine running this node |
NDBD_EXIT_SIGNAL_LOST_SEND_BUFFER_FULL | XCR | Signal lost, out of send buffer memory, please increase SendBufferMemory or lower the load |
NDBD_EXIT_SIGNAL_LOST | XIE | Signal lost (unknown reason) |
NDBD_EXIT_ILLEGAL_SIGNAL | XIE | Illegal signal (version mismatch a possibility) |
NDBD_EXIT_CONNECTION_SETUP_FAILED | XCE | Connection setup failed |
This section contains ndbd error codes that
are associated with problems in the NDBCNTR
(initialization and configuration) NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_RESTART_TIMEOUT | XCE | Total restart time too long, consider increasing StartFailureTimeout or investigate error(s) on other node(s) |
NDBD_EXIT_RESTART_DURING_SHUTDOWN | XRE | Node started while node shutdown in progress. Please wait until shutdown complete before starting node |
This section contains ndbd error codes that
are associated with problems in the DIH
(distribution handler) NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_MAX_CRASHED_REPLICAS | XFL | Too many crashed replicas (8 consecutive node restart failures) |
NDBD_EXIT_MASTER_FAILURE_DURING_NR | XRE | Unhandled master failure during node restart |
NDBD_EXIT_LOST_NODE_GROUP | XAE | All nodes in a node group are unavailable |
NDBD_EXIT_NO_RESTORABLE_REPLICA | XFI | Unable to find a restorable replica |
This section contains ndbd error codes that
are associated with problems in the ACC
(access control and lock management) NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_SR_OUT_OF_INDEXMEMORY | XCR | Out of index memory during system restart, please increase IndexMemory |
This section contains ndbd error codes that
are associated with problems in the TUP
(tuple management) NDB
kernel block.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_SR_OUT_OF_DATAMEMORY | XCR | Out of data memory during system restart, please increase DataMemory |
This section contains ndbd error codes that
are associated with problems in the NDBFS
(filesystem) NDB
kernel block.
Most of these errors will provide additional information, such as operating system error codes, when they are generated.
Error Code | Error Classification | Error Text |
---|---|---|
NDBD_EXIT_AFS_NOPATH | XIE | No file system path |
2802 | XIE | Channel is full |
2803 | XIE | No more threads |
NDBD_EXIT_AFS_PARAMETER | XIE | Bad parameter |
NDBD_EXIT_AFS_INVALIDPATH | XCE | Illegal file system path |
NDBD_EXIT_AFS_MAXOPEN | XCR | Max number of open files exceeded, please increase MaxNoOfOpenFiles |
NDBD_EXIT_AFS_ALREADY_OPEN | XIE | File has already been opened |
NDBD_EXIT_AFS_ENVIRONMENT | XIE | Environment error using file |
NDBD_EXIT_AFS_TEMP_NO_ACCESS | XIE | Temporary on access to file |
NDBD_EXIT_AFS_DISK_FULL | XFF | The file system is full |
NDBD_EXIT_AFS_PERMISSION_DENIED | XCE | Received permission denied for file |
NDBD_EXIT_AFS_INVALID_PARAM | XCE | Invalid parameter for file |
NDBD_EXIT_AFS_UNKNOWN | XIE | Unknown file system error |
NDBD_EXIT_AFS_NO_MORE_RESOURCES | XIE | System reports no more file system resources |
NDBD_EXIT_AFS_NO_SUCH_FILE | XFI | File not found |
NDBD_EXIT_AFS_READ_UNDERFLOW | XFI | Read underflow |
NDBD_EXIT_INVALID_LCP_FILE | XFI | Invalid LCP |
NDBD_EXIT_INSUFFICENT_NODES | XRE | Insufficent nodes for system restart |
NDBD_EXIT_UNSUPPORTED_VERSION | XRE | Unsupported version |
A special case, to handle unknown or previously unclassified errors. You should always report a bug using http://bugs.mysql.com/ if you can repeat a problem giving rise to this error consistently.
Error Code | Error Classification | Error Text |
---|---|---|
0 | XUE | No message slogan found (please report a bug if you get this error code) |
This section lists the classifications for the error messages described in Section 5.3.1, “ndbd Error Codes”.
Error Code | Error Classification | Error Text |
---|---|---|
XNE | Success | No error |
XUE | Unknown | Unknown |
XIE | XST_R | Internal error, programming error or missing error message, please report a bug |
XCE | Permanent error, external action needed | Configuration error |
XAE | Temporary error, restart node | Arbitration error |
XRE | Temporary error, restart node | Restart error |
XCR | Permanent error, external action needed | Resource configuration error |
XFF | Permanent error, external action needed | File system full |
XFI | Ndbd file system error, restart node initial | Ndbd file system inconsistency error, please report a bug |
XFL | Ndbd file system error, restart node initial | Ndbd file system limit exceeded |
This section lists error codes, names, and messages that are written to the cluster log in the event of transporter errors.
Error Code | Error Name | Error Text |
---|---|---|
0x00 | TE_NO_ERROR | No error |
0x01 | TE_ERROR_CLOSING_SOCKET | Error found during closing of socket |
0x02 | TE_ERROR_IN_SELECT_BEFORE_ACCEPT | Error found before accept. The transporter will retry |
0x03 | TE_INVALID_MESSAGE_LENGTH | Error found in message (invalid message length) |
0x04 | TE_INVALID_CHECKSUM | Error found in message (checksum) |
0x05 | TE_COULD_NOT_CREATE_SOCKET | Error found while creating socket(can't create socket) |
0x06 | TE_COULD_NOT_BIND_SOCKET | Error found while binding server socket |
0x07 | TE_LISTEN_FAILED | Error found while listening to server socket |
0x08 | TE_ACCEPT_RETURN_ERROR | Error found during accept(accept return error) |
0x0b | TE_SHM_DISCONNECT | The remote node has disconnected |
0x0c | TE_SHM_IPC_STAT | Unable to check shm segment |
0x0d | TE_SHM_UNABLE_TO_CREATE_SEGMENT | Unable to create shm segment |
0x0e | TE_SHM_UNABLE_TO_ATTACH_SEGMENT | Unable to attach shm segment |
0x0f | TE_SHM_UNABLE_TO_REMOVE_SEGMENT | Unable to remove shm segment |
0x10 | TE_TOO_SMALL_SIGID | Sig ID too small |
0x11 | TE_TOO_LARGE_SIGID | Sig ID too large |
0x12 | TE_WAIT_STACK_FULL | Wait stack was full |
0x13 | TE_RECEIVE_BUFFER_FULL | Receive buffer was full |
0x14 | TE_SIGNAL_LOST_SEND_BUFFER_FULL | Send buffer was full,and trying to force send fails |
0x15 | TE_SIGNAL_LOST | Send failed for unknown reason(signal lost) |
0x16 | TE_SEND_BUFFER_FULL | The send buffer was full, but sleeping for a while solved |
0x0017 | TE_SCI_LINK_ERROR | There is no link from this node to the switch |
0x18 | TE_SCI_UNABLE_TO_START_SEQUENCE | Could not start a sequence, because system resources are exumed or no sequence has been created |
0x19 | TE_SCI_UNABLE_TO_REMOVE_SEQUENCE | Could not remove a sequence |
0x1a | TE_SCI_UNABLE_TO_CREATE_SEQUENCE | Could not create a sequence, because system resources are exempted. Must reboot |
0x1b | TE_SCI_UNRECOVERABLE_DATA_TFX_ERROR | Tried to send data on redundant link but failed |
0x1c | TE_SCI_CANNOT_INIT_LOCALSEGMENT | Cannot initialize local segment |
0x1d | TE_SCI_CANNOT_MAP_REMOTESEGMENT | Cannot map remote segment |
0x1e | TE_SCI_UNABLE_TO_UNMAP_SEGMENT | Cannot free the resources used by this segment (step 1) |
0x1f | TE_SCI_UNABLE_TO_REMOVE_SEGMENT | Cannot free the resources used by this segment (step 2) |
0x20 | TE_SCI_UNABLE_TO_DISCONNECT_SEGMENT | Cannot disconnect from a remote segment |
0x21 | TE_SHM_IPC_PERMANENT | Shm ipc Permanent error |
0x22 | TE_SCI_UNABLE_TO_CLOSE_CHANNEL | Unable to close the sci channel and the resources allocated |