[
https://issues.apache.org/jira/browse/DERBY-3740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13200188#comment-13200188
]
Mike Matrigali commented on DERBY-3740:
---------------------------------------
ran just the testLockingBlob test on slow laptop, running windows, ibm16 100
times. Got 50 failures in 44 runs. Always
in embedded run, never net. I just hand edited the file to just run that one
test, but it gets run 3 times. Can anyone explain what determines the number
of times a test gets run.
I added some extra asserts to verify the test assumptions about page size and
that the rows were actually being
seen, but none of those popped. I am now thinking that it may be some garbage
collection issue as the code has
a reference to the blob but never uses it again in the routine, so I guess it
would valid for jvm/jit to gc the reference
before the routine returns. And we have code that changes finalize to close
the blob stream, which will release a lock,
which would then break this test.
I am using the following to run the test:
java -Dderby.tests.trace=true junit.textui.TestRunner
org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest
>>test3.out 2>&1
The output for a fail run where the test failed twice looks like:
.
(emb)jdbcapi.b.testLockingBlob used 4437 ms F.
(net)jdbcapi.b.testLockingBlob used 6672 ms .
(emb)jdbcapi.b.testLockingBlob used 2937 ms F
Time: 84.171
There were 2 failures:
1) testLockingBlob(org.apache.derbyTesting.functionTests.tests.jdbcapi.b)junit.f
ramework.AssertionFailedError: FAIL - should have gotten lock timeout
at org.apache.derbyTesting.functionTests.tests.jdbcapi.b.testLockingBlob(b.j
ava:2435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI
mpl.java:37)
at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:116)
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 org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
2) testLockingBlob(org.apache.derbyTesting.functionTests.tests.jdbcapi.b)junit.f
ramework.AssertionFailedError: FAIL - should have gotten lock timeout
at org.apache.derbyTesting.functionTests.tests.jdbcapi.b.testLockingBlob(b.j
ava:2435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI
mpl.java:37)
at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:116)
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 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)
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)
FAILURES!!!
Tests run: 3, Failures: 2, Errors: 0
> BlobClob4BlobTest.testLockingWithLongRowBlob fails with
> .AssertionFailedError: FAIL - statement should timeout
> --------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3740
> URL: https://issues.apache.org/jira/browse/DERBY-3740
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.3.3.1, 10.8.2.3, 10.9.0.0
> Reporter: Mamta A. Satoor
> Labels: derby_triage10_8
>
> The test failure looks as follows
> testLockingWithLongRowBlob(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)junit.framework.AssertionFailedError:
> FAIL - statement should timeout
> at
> org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest.testLockingWithLongRowBlob(BlobClob4BlobTest.java:2383)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at <unknown class>.<unknown method>(Unknown Source)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:88)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira