You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Alice Chen (JIRA)" <ji...@apache.org> on 2015/07/22 20:14:31 UTC

[jira] [Created] (TRAFODION-179) LP Bug: 1274962 - EXECUTE.BATCH update creates core-file

Alice Chen created TRAFODION-179:
------------------------------------

             Summary: LP Bug: 1274962 - EXECUTE.BATCH update creates core-file
                 Key: TRAFODION-179
                 URL: https://issues.apache.org/jira/browse/TRAFODION-179
             Project: Apache Trafodion
          Issue Type: Bug
          Components: sql-cmp
            Reporter: Guy Groulx
            Assignee: Sandhya Sundaresan
            Priority: Critical
             Fix For: 2.0-incubating


Using atomics suite.

Test 10 is an update test using JDBC batch feature.
Test 12 is a delete test using JDBC batch feature.

Test is configured to batch 500 rows and then does execute batch.   See code for update.  Similar code for delete.

    /*    Prepare the insert statement.   */
    String sqlStmtCmd = "UPDATE " + dbTableName + " SET COL1=?, COL2=? WHERE CNT = ?";
    try {
      sqlStmt = dbConnection.prepareStatement(sqlStmtCmd);
    } catch (SQLException e) {
      log_error("Exception in update_with_rowsets\n");
      return(e.getErrorCode());
    }

...

    for (i = 0; i < (int)numbtmf; i++) {   <== numbtmf is a passed parameter, set to 500 in my tests.
      try {
        sqlStmt.setLong(1, up_col1);
        sqlStmt.setLong(2, up_col2);
        sqlStmt.setLong(3, hv_cnt);
        sqlStmt.addBatch();
        hv_cnt++;
        if (hv_cnt >= hv_cnt2) hv_cnt = hv_cnt1;     /*  Need to restart. */
      } catch (SQLException e) {
        log_error("Exception in update_with_rowsets\n");
        SQLException nextException;

        nextException = e;
        retcode = e.getErrorCode();
        do {
          log_error(nextException.getMessage() + " State: " + nextException.getSQLState() + "\n");
        } while ((nextException = nextException.getNextException()) != null);
      }
    }

    beginTXN();

    try {
      resultCountL = sqlStmt.executeBatch();    <== This is where is hangs for a very long time.
      rowCnt+=resultCountL.length;
      if (resultCountL.length != numbtmf) {
        log_error("Error UPDATING!! resultCount: " + resultCountL.length + "\n");
        retcode = 1;
      } else {
        for (i = 0; i < resultCountL.length; i++) {
          if ((resultCountL[i] != 1) && (resultCountL[i] != Statement.SUCCESS_NO_INFO)) {
            log_error("Error UPDATING!! resultCount: " + resultCountL[i] + "\n");
            retcode = resultCountL[i];
            break;
          }
        }
      }
      sqlStmt.clearBatch();
    } catch (SQLException e) {
      log_error("Exception in update_with_rowsets\n");
      SQLException nextException;

      nextException = e;
      retcode = e.getErrorCode();
      do {
        log_error(nextException.getMessage() + " State: " + nextException.getSQLState() + "\n");
      } while ((nextException = nextException.getNextException()) != null);
    }

    commitTXN();
    return retcode;


Eventually, get: 
Exception in update_with_rowsets
Exception in update_with_rowsets
Batch Update Failed, See next exception for details State: HY000
Batch Update Failed, See next exception for details State: HY000
*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::insertRows returned error HBASE_ACCESS_ERROR(-705). Cause: 
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions:
Fri Jan 31 14:38:42 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:43 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:44 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:45 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:47 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:49 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:53 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:57 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:39:05 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:39:21 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException

org.apache.hadoop.hbase.client.ServerCallable.withRetries(ServerCallable.java:183)
org.apache.hadoop.hbase.client.transactional.TransactionalTable.put(TransactionalTable.java:306)
org.apache.hadoop.hbase.client.transactional.RMInterface.put(RMInterface.java:155)
org.trafodion.sql.HBaseAccess.HTableClient.insertRows(HTableClient.java:500)
. [2014-01-31 14:39:21] State: X08CG
*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::insertRows returned error HBASE_ACCESS_ERROR(-705). Cause: 
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions:
Fri Jan 31 14:38:42 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:43 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:44 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:45 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:47 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:49 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:53 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:38:57 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:39:05 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException
Fri Jan 31 14:39:21 UTC 2014, org.apache.hadoop.hbase.client.transactional.TransactionalTable$7@1c36686e, java.lang.NullPointerException

org.apache.hadoop.hbase.client.ServerCallable.withRetries(ServerCallable.java:183)
org.apache.hadoop.hbase.client.transactional.TransactionalTable.put(TransactionalTable.java:306)
org.apache.hadoop.hbase.client.transactional.RMInterface.put(RMInterface.java:155)
org.trafodion.sql.HBaseAccess.HTableClient.insertRows(HTableClient.java:500)
. [2014-01-31 14:39:21] State: X08CG
Test TSUR0500: 0 loops from 31 Jan 14 14:32:29.970 to 14:44:57.120 for 747 secs


Get similar result when doing batch deletes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)