You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (JIRA)" <ji...@apache.org> on 2011/09/23 15:36:33 UTC
[jira] [Commented] (DERBY-5428) ns test error: ERROR 38000: The
exception 'org.apache.derby.shared.common.sanity.AssertFailure: ASSERT
FAILED Identity being changed on a live cacheable. Old uuidString =
846c00a0-0132-88d8-fec0-000000080920' was thrown while evaluating an
expression
[ https://issues.apache.org/jira/browse/DERBY-5428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113429#comment-13113429 ]
Rick Hillegas commented on DERBY-5428:
--------------------------------------
This may be another example of the harmless, but confused state of the SequenceUpdater which was fixed by the work on DERBY-5389. That work was committed to the 10.8 branch at revision 1172620 after the 10.8.2.1 candidate was built (at revision 1170221). The stack trace is different because SequenceUpdater.setIdentity() is being called to generate an identity rather than a sequence.
Other than the problem fixed by DERBY-5389, I don't see any other ways that the internal state of the SequenceUpdater could be confused in this fashion. However, I can't promise that there isn't another code path which I'm not clever enough to see.
It might be useful to see if you can reproduce this problem against the current head of the 10.8 branch. Thanks.
> ns test error: ERROR 38000: The exception 'org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Identity being changed on a live cacheable. Old uuidString = 846c00a0-0132-88d8-fec0-000000080920' was thrown while evaluating an expression
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-5428
> URL: https://issues.apache.org/jira/browse/DERBY-5428
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.8.2.1
> Environment: Windows XP, ibm 16 sr 9 fp1, with modified derbyTesting.jar (ps2.close & print exception reversed as suggested in DERBY-5421)
> Reporter: Myrna van Lunteren
>
> In an attempt to reproduce DERBY-5421/ DERBY-5422/ DERBY-5423 and get more information, I ran the nstest (embedded on another Windows machine, with the same jvm version, but with the following setup:
> - sane jars from the 10.8.2.1 RC2 (rev 1170221)
> - derbyTesting.jar built (sane) at the same level, but with modifications to put ps2.close() in Dbutil after the exception print
> - the following details in a derby.properties file:
> derby.language.logStatementText=true
> derby.stream.error.logSeverityLevel=0
> derby.language.sequence.preallocator=200
> This time, so far, I only see the following unexpected error:
> (in derby.log:) ERROR 38000: The exception 'org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Identity being changed on a live cacheable. Old uuidString = 846c00a0-0132-88d8-fec0-000000080920' was thrown while evaluating an expression
> This looks like DERBY-5389, but it has a different stack trace and happens with ibm 1.6:
> ------------------------------------------------------------------
> Tue Sep 20 15:04:06 PDT 2011 Thread[Thread 3,5,main] (XID = 58789), (SESSIONID = 22), (DATABASE = nstestdb), (DRDAID = null), Begin compiling prepared statement: update nstesttab set t_double = ? where serialkey = 36027 :End prepared statement
> --
> ERROR 38000: The exception 'org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Identity being changed on a live cacheable. Old uuidString = 846c00a0-0132-88d8-fec0-000000080920' was thrown while evaluating an expression.
> at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:296)
> at org.apache.derby.iapi.error.StandardException.unexpectedUserException(StandardException.java:583)
> at org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:164)
> at org.apache.derby.impl.sql.execute.RowResultSet.getNextRowCore(RowResultSet.java:148)
> at org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:185)
> at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:127)
> at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:515)
> at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:436)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:317)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1686)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:308)
> at org.apache.derbyTesting.system.nstest.utils.DbUtil.add_one_row(DbUtil.java:201)
> at org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:148)
> at org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:118)
> at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:551)
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Identity being changed on a live cacheable. Old uuidString = 846c00a0-0132-88d8-fec0-000000080920
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162)
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147)
> at org.apache.derby.impl.sql.catalog.SequenceUpdater.setIdentity(SequenceUpdater.java:272)
> at org.apache.derby.impl.services.cache.ConcurrentCache.find(ConcurrentCache.java:295)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getCurrentValueAndAdvance(DataDictionaryImpl.java:10352)
> at org.apache.derby.impl.sql.execute.InsertResultSet.getSetAutoincrementValue(InsertResultSet.java:824)
> at org.apache.derby.impl.sql.execute.BaseActivation.getSetAutoincrementValue(BaseActivation.java:666)
> at org.apache.derby.exe.ac092d4de3x0132x88d8xfec0x0000000809207.e0(Unknown Source)
> at org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:139)
> ... 13 more
> ============= begin nested exception, level (1) ===========
> org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Identity being changed on a live cacheable. Old uuidString = 846c00a0-0132-88d8-fec0-000000080920
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162)
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147)
> at org.apache.derby.impl.sql.catalog.SequenceUpdater.setIdentity(SequenceUpdater.java:272)
> at org.apache.derby.impl.services.cache.ConcurrentCache.find(ConcurrentCache.java:295)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getCurrentValueAndAdvance(DataDictionaryImpl.java:10352)
> at org.apache.derby.impl.sql.execute.InsertResultSet.getSetAutoincrementValue(InsertResultSet.java:824)
> at org.apache.derby.impl.sql.execute.BaseActivation.getSetAutoincrementValue(BaseActivation.java:666)
> at org.apache.derby.exe.ac092d4de3x0132x88d8xfec0x0000000809207.e0(Unknown Source)
> at org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:139)
> at org.apache.derby.impl.sql.execute.RowResultSet.getNextRowCore(RowResultSet.java:148)
> at org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:185)
> at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:127)
> at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:515)
> at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:436)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:317)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1686)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:308)
> at org.apache.derbyTesting.system.nstest.utils.DbUtil.add_one_row(DbUtil.java:201)
> at org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:148)
> at org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:118)
> --
> at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
> at org.apache.derby.iapi.types.SQLDecimal.setWidth(SQLDecimal.java:1063)
> at org.apache.derby.iapi.types.SQLDecimal.normalize(SQLDecimal.java:759)
> at org.apache.derby.iapi.types.DataTypeDescriptor.normalize(DataTypeDescriptor.java:648)
> at org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeColumn(NormalizeResultSet.java:329)
> at org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(NormalizeResultSet.java:373)
> at org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:188)
> at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:127)
> at org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:440)
> at org.apache.derby.impl.sql.execute.UpdateResultSet.open(UpdateResultSet.java:264)
> at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:436)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:317)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1686)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:308)
> at org.apache.derbyTesting.system.nstest.utils.DbUtil.update_one_row(DbUtil.java:382)
> at org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:162)
> at org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:118)
> at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:551)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira