Hello,
I am using the version 0.7.0 of NdbBindings and I would like to make a
NdbIndexScanOperation on the following table
CREATE TABLE MSGS (ID INTEGER NOT NULL,
CONTAINER VARCHAR(250),
MSGID_PROD VARCHAR(250),
MSGID_SEQ INTEGER,
EXPIRATION BIGINT,
MSG VARBINARY(7522),
MSG_SIZE BIGINT,
PRIMARY KEY ( ID ) ) ENGINE=ndb;
using the index MSGS_CIDX that I created on the column CONTAINER.
Performing several times the transaction, this may behave fine, but often, I get the
following error message:
*** glibc detected *** /usr/java/jdk1.6.0_07/bin/java: free(): invalid next size (fast):
0x08196468 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7e52a85]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e564f0]
/usr/local/lib/libndbj.so.0.0.0(Java_com_mysql_cluster_ndbj_ndbjJNI_NdbRecAttrImpl_1getString+0xc8)[0xb56ca18a]
[0xb5ce9ecd]
[0xb5ce2d77]
[0xb5ce3253]
[0xb5ce3253]
[0xb5ce2edd]
[0xb5ce0249]
/usr/java/jdk1.6.0_07/jre/lib/i386/client/libjvm.so[0x621c63d]
/usr/java/jdk1.6.0_07/jre/lib/i386/client/libjvm.so[0x63107b8]
/usr/java/jdk1.6.0_07/jre/lib/i386/client/libjvm.so[0x621c4d0]
/usr/java/jdk1.6.0_07/jre/lib/i386/client/libjvm.so[0x6245af6]
/usr/java/jdk1.6.0_07/jre/lib/i386/client/libjvm.so[0x62372f8]
/usr/java/jdk1.6.0_07/bin/java(JavaMain+0x2c8)[0x8049b98]
/lib/tls/i686/cmov/libpthread.so.0[0xb7f494fb]
/lib/tls/i686/cmov/libc.so.6(clone+0x5e)[0xb7ebde5e]
Could you help me with it?
I used the code:
NdbTransaction trans = null;
int parallel = 0;
int batch = 0;
boolean forceSend = true;
try {
trans = ndb.startTransaction();
// creating an index scan on MSGS_CIDX to retrieve
// container names
NdbIndexScanOperation op_ContainerNames = trans
.getSelectIndexScanOperation(
indexName_messageTableContainerCol, msgTable,
NdbOperation.LockMode.LM_CommittedRead,
NdbScanOperation.ScanFlag.DESCENDING, parallel, batch);
op_ContainerNames.getValue("CONTAINER");
NdbResultSet rs_container = op_ContainerNames.resultData();
trans.execute(ExecType.Commit,AbortOption.AbortOnError, forceSend);
String tempContainerName = null;
while (rs_container.next()) {
tempContainerName = rs_container.getString("CONTAINER");
System.out.println(tempContainerName);
}
} catch (NdbApiException e) {
e.printStackTrace();
} finally {
trans.close();
}