[
https://issues.apache.org/jira/browse/DERBY-4985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kathey Marsden updated DERBY-4985:
----------------------------------
Issue & fix info: [Newcomer, Patch Available, Repro attached] (was: [Repro
attached, Newcomer])
I'll run store._Suite and then check in.
> BootLockTest can fail with ERROR XCY03: Required property
> 'derby.serviceProtocol' has not been set with slow configurations
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4985
> URL: https://issues.apache.org/jira/browse/DERBY-4985
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.5.3.0
> Reporter: Kathey Marsden
> Attachments: derby-4985_diff.txt
>
>
> If derby tests are running with JVM options that slow things down
> substantially, it can fail with:
> 1)
> testBootLock(org.apache.derbyTesting.functionTests.tests.store.BootLockTest)j
> unit.framework.ComparisonFailure: Dual boot not detected: check
> BootLockMinion.l
> og expected:<...SDB6> but was:<...CY03>
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.assertSQLState(BaseJDB
> CTestCase.java:769)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.assertSQLState(BaseJDB
> CTestCase.java:804)
> at
> org.apache.derbyTesting.functionTests.tests.store.BootLockTest.testBo
> otLock(BootLockTest.java:145)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:60)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:37)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:
> 109)
> 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 junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> Caused by: java.sql.SQLException: Required property 'derby.serviceProtocol'
> has
> not been set.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
> xceptionFactory40.java:95)
> at
> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnecti
> on.java:2723)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.jav
> a:384)
> at
> org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68
> )
> at
> org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:238)
> at
> org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:
> 128)
> at java.sql.DriverManager.getConnection(DriverManager.java:322)
> at java.sql.DriverManager.getConnection(DriverManager.java:297)
> at
> org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(D
> riverManagerConnector.java:81)
> at
> org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(D
> riverManagerConnector.java:43)
> at
> org.apache.derbyTesting.junit.TestConfiguration.openDefaultConnection
> (TestConfiguration.java:1538)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.openDefaultConnection(
> BaseJDBCTestCase.java:428)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.getConnection(BaseJDBC
> TestCase.java:110)
> at
> org.apache.derbyTesting.functionTests.tests.store.BootLockTest.testBo
> otLock(BootLockTest.java:136)
> ... 31 more
> Caused by: java.sql.SQLException: Required property 'derby.serviceProtocol'
> has
> not been set.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExc
> eptionFactory.java:45)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransport
> AcrossDRDA(SQLExceptionFactory40.java:119)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
> xceptionFactory40.java:70)
> ... 45 more
> Caused by: ERROR XCY03: Required property 'derby.serviceProtocol' has not
> been s
> et.
> at
> org.apache.derby.iapi.error.StandardException.newException(StandardEx
> ception.java:286)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderServi
> ce(BaseMonitor.java:1679)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndSta
> rtService(BaseMonitor.java:1560)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentSer
> vice(BaseMonitor.java:979)
> at
> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService
> (Monitor.java:550)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnecti
> on.java:2686)
> ... 43 more
> The test waits for the spawned process to create db.lck and
> service.properties and then waits three seconds more to make sure the
> properties have been written, but this might not be enough time.
> Although I have not seen this myself with unchanged code , I can simulate it
> on windows by changing StorageFactoryService.saveServiceProperties() to have
> a sleep between creating the service.properties file and writing the
> properties out, e.g.
> try
> {
> os = servicePropertiesFile.getOutputStream();
> try {
> Thread.sleep(10000);
> } catch (Exception e) {}
> properties.store( os, serviceName +
> MessageService.getTextMessage(MessageId.SERVICE_PROPERTIES_DONT_EDIT));
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.