[ 
https://issues.apache.org/jira/browse/DERBY-6533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14005123#comment-14005123
 ] 

Rick Hillegas commented on DERBY-6533:
--------------------------------------

I have updated my installation on the 8 core machine to use jar files built 
from the head of trunk after checking in 
derby-6542-02-af-useNewSequenceGenerator.diff. Here is the output from a 6 hour 
run.

Summary: A couple errors 1 minute into the test, starting with a problem in 
destroying a transaction while firing a delete trigger. The a half hour into 
the test there was one TooMuchContention exception on the user-created sequence.

{noformat}
STATISTICS OF OPERATIONS DONE
-----------------------------



Start time = 2014-05-21 14:11:38.358
End time = 2014-05-21 20:11:26.506
Duration = 359 minutes



SUCCESSFUL: 
        Number of INSERTS = 2544388
        Number of UPDATES = 1253208
        Number of DELETES = 1253550
        Number of SELECTS = 103324

FAILED: 
        Number of failed INSERTS = 1
        Number of failed UPDATES = 1216899
        Number of failed DELETES = 1217258
        Number of failed SELECTS = 0

  Note that this may not be the same as the server side connections made
   to the database especially if connection pooling is employed

NOTE: Failing operations could be because of locking issue that are
directly related to the application logic.  They are not necessarily bugs.

Max sequence counter peeked at = 2576467


Last total memory = 6312427520, last free memory = 5520965304 as measured at 
Wed May 21 20:08:22 CEST 2014



        Number of X0Y84 = 1
        Number of 08003 = 1
        Number of XJ001 = 1


//////////////////////////////////////////////////////////////
//    
//    Count = 1, SQLState = XJ001, Message = Java exception: '-1: 
java.lang.ArrayIndexOutOfBoundsException'.
//    
//    First occurrence at 2014-05-21 14:12:56.693, last occurrence at 
2014-05-21 14:12:56.693
//    
//////////////////////////////////////////////////////////////

java.sql.SQLException: Java exception: '-1: 
java.lang.ArrayIndexOutOfBoundsException'.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:107)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:133)
        at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:255)
        at org.apache.derby.impl.jdbc.Util.javaException(Util.java:277)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:437)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2396)
        at 
org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1430)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1709)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeLargeUpdate(EmbedPreparedStatement.java:320)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:309)
        at 
org.apache.derbyTesting.system.nstest.utils.DbUtil.delete_one_row(DbUtil.java:436)
        at 
org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:193)
        at 
org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:121)
        at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:805)
Caused by: ERROR XJ001: Java exception: '-1: 
java.lang.ArrayIndexOutOfBoundsException'.
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:162)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:74)
        ... 15 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.ArrayList.elementData(ArrayList.java:403)
        at java.util.ArrayList.remove(ArrayList.java:480)
        at 
org.apache.derby.iapi.services.context.ContextManager.popContext(ContextManager.java:209)
        at 
org.apache.derby.iapi.services.context.ContextImpl.popMe(ContextImpl.java:81)
        at 
org.apache.derby.impl.store.access.RAMTransaction.destroy(RAMTransaction.java:2013)
        at 
org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(SPSDescriptor.java:788)
        at 
org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(SPSDescriptor.java:655)
        at 
org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:171)
        at 
org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeWhenClauseAndAction(GenericTriggerExecutor.java:346)
        at 
org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger(RowTriggerExecutor.java:113)
        at 
org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:272)
        at 
org.apache.derby.impl.sql.execute.DeleteResultSet.fireAfterTriggers(DeleteResultSet.java:469)
        at 
org.apache.derby.impl.sql.execute.DeleteResultSet.open(DeleteResultSet.java:158)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:470)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:349)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1338)
        ... 7 more


//////////////////////////////////////////////////////////////
//    
//    Count = 1, SQLState = 08003, Message = No current connection.
//    
//    First occurrence at 2014-05-21 14:12:56.695, last occurrence at 
2014-05-21 14:12:56.695
//    
//////////////////////////////////////////////////////////////

java.sql.SQLNonTransientConnectionException: No current connection.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:80)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:133)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:228)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:223)
        at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Util.java:239)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(EmbedConnection.java:2371)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.getTransactionIsolation(EmbedConnection.java:2266)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.setTransactionIsolation(EmbedConnection.java:2217)
        at 
org.apache.derbyTesting.system.nstest.utils.DbUtil.delete_one_row(DbUtil.java:443)
        at 
org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:193)
        at 
org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:121)
        at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:805)
Caused by: ERROR 08003: No current connection.
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:162)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:74)
        ... 11 more


//////////////////////////////////////////////////////////////
//    
//    Count = 1, SQLState = X0Y84, Message = Too much contention on sequence 
NSTESTTAB_SEQ. This is probably caused by an uncommitted scan of the 
SYS.SYSSEQUENCES catalog. Do not query this catalog directly. Instead, use the 
SYSCS_UTIL.SYSCS_PEEK_AT_SEQUENCE function to view the current value of a 
sequence generator.
//    
//    First occurrence at 2014-05-21 14:32:42.785, last occurrence at 
2014-05-21 14:32:42.785
//    
//////////////////////////////////////////////////////////////

java.sql.SQLException: Too much contention on sequence NSTESTTAB_SEQ. This is 
probably caused by an uncommitted scan of the SYS.SYSSEQUENCES catalog. Do not 
query this catalog directly. Instead, use the SYSCS_UTIL.SYSCS_PEEK_AT_SEQUENCE 
function to view the current value of a sequence generator.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:107)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:233)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:424)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
        at 
org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2396)
        at 
org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1430)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1709)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeLargeUpdate(EmbedPreparedStatement.java:320)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:309)
        at 
org.apache.derbyTesting.system.nstest.utils.DbUtil.add_one_row(DbUtil.java:196)
        at 
org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:164)
        at 
org.apache.derbyTesting.system.nstest.tester.Tester2.startTesting(Tester2.java:113)
        at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:809)
Caused by: ERROR X0Y84: Too much contention on sequence NSTESTTAB_SEQ. This is 
probably caused by an uncommitted scan of the SYS.SYSSEQUENCES catalog. Do not 
query this catalog directly. Instead, use the SYSCS_UTIL.SYSCS_PEEK_AT_SEQUENCE 
function to view the current value of a sequence generator.
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
        at 
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:285)
        at 
org.apache.derby.impl.sql.catalog.SequenceUpdater.tooMuchContentionException(SequenceUpdater.java:182)
        at 
org.apache.derby.impl.sql.catalog.SequenceUpdater.getCurrentValueAndAdvance(SequenceUpdater.java:418)
        at 
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getCurrentValueAndAdvance(DataDictionaryImpl.java:10306)
        at 
org.apache.derby.impl.sql.execute.BaseActivation.getCurrentValueAndAdvance(BaseActivation.java:763)
        at 
org.apache.derby.exe.ac1db1e91ax0146x1eb1xab81x000017ae4fe0ef9.e0(Unknown 
Source)
        at 
org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:101)
        at 
org.apache.derby.impl.sql.execute.RowResultSet.getNextRowCore(RowResultSet.java:150)
        at 
org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:188)
        at 
org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:143)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.getNextRowCore(InsertResultSet.java:1311)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:503)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:470)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:349)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1338)
        ... 7 more
{noformat}


> Add a quiet mode to NsTest
> --------------------------
>
>                 Key: DERBY-6533
>                 URL: https://issues.apache.org/jira/browse/DERBY-6533
>             Project: Derby
>          Issue Type: Improvement
>          Components: Test
>    Affects Versions: 10.11.0.0
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: derby-6533-01-aa-quietMode.diff, 
> derby-6533-02-aa-sequencesAndMoreStats.diff, 
> derby-6533-02-aa-sequencesAndMoreStats.out, derby-6533-03-timerThread.diff, 
> derby-6533-04-outOfMemory.diff, derby-6533-05-aa-dieQuickly.diff, 
> derby-6533-07-aa-moreDefensiveCode.diff, derby-6533-08-aa-sortErrors.diff, 
> derby-6533-aa-anotherNPE.diff, nstest.out, nstest.out, nstest.out, 
> nstest.out, nstest.out, nstest.out, nstest.out, nstest.out, nstest.out, 
> nstest.out, nstest.out, nstest.out, nstest.out
>
>
> Right now NsTest produces an enormous log file. This may be useful for 
> tracking down some errors. However, this can also make it hard to find the 
> signal in the noise. It would be good to turn off the chatty diagnostics 
> which report the result of every insert, update, delete, and select. A 
> summary at the end may be good enough, including a summary of the number of 
> times each kind of error (SQLState) was seen. While I'm in there, I plan to 
> make other smallish changes.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to