db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4097) 'testMixedInsertDelete(org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest)org.apache.derby.client.am.BatchUpdateException'
Date Fri, 17 Apr 2009 12:54:15 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-4097:
--------------------------------------

    Attachment: d4097-1a-rescanOnWaitError.diff

The attached patch d4097-1a-rescanOnWaitError.diff increases the number of iterations in the
test case to more reliably reproduce the WaitError, and it modifies BTreeController.comparePreviousRecord()
so that it releases all latches and returns RESCAN_REQUIRED when a WaitError is detected.
This is not an ideal solution, as the thread that gets the WaitError may need many tries before
it manages to latch the left sibling, and it will be constantly spending CPU until it manages
to acquire the latch. Anyways, it should not happen very frequently, and I think a spin-wait
loop is better than failing in this situation. (This is yet another reason to rewrite the
nullable unique insert code as suggested by Mike in the thread mentioned in an earlier comment.)

NullableUniqueConstraintTest passed with this patch. Will start the rest of the regression
test suite now.

> 'testMixedInsertDelete(org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest)org.apache.derby.client.am.BatchUpdateException'
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4097
>                 URL: https://issues.apache.org/jira/browse/DERBY-4097
>             Project: Derby
>          Issue Type: Bug
>          Components: Regression Test Failure
>    Affects Versions: 10.5.0.0
>         Environment: OS: 
> Solaris 9 9/04 s9s_u7wos_09 SPARC 64bits 
> SunOS 5.9 Generic_118558-11
> JVM: 
> Sun Microsystems Inc.
> java version "1.5.0_14"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
> OS:
> Solaris 10 5/08 s10x_u5wos_10 X86 64bits
> SunOS 5.10 Generic_127128-11
> JVM:
> Sun Microsystems Inc.
> java version "1.5.0_14"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
>            Reporter: Ole Solberg
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: batchexception.diff, d4097-1a-rescanOnWaitError.diff
>
>
> Seen twice....
> See 
> http://dbtg.thresher.com/derby/test/trunk15/jvm1.5/testing/testlog/SunOS-5.9_sun4u-sparc/754716-org.apache.derbyTesting.functionTests.suites.All_diff.txt
> http://dbtg.thresher.com/derby/test/trunk15/jvm1.5/testing/testlog/SunOS-5.10_i86pc-i386/753342-org.apache.derbyTesting.functionTests.suites.All_diff.txt
> 1) testMixedInsertDelete(org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest)org.apache.derby.client.am.BatchUpdateException:
Non-atomic batch failure.  The batch was submitted, but at least one exception occurred on
an individual member of the batch. Use getNextException() to retrieve the exceptions for specific
batched elements.
> 	at org.apache.derby.client.am.Agent.endBatchedReadChain(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.executeBatchRequestX(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.executeBatchX(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.executeBatch(Unknown Source)
> 	at org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest.testMixedInsertDelete(NullableUniqueConstraintTest.java:481)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message