db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4985) BootLockTest can fail with ERROR XCY03: Required property 'derby.serviceProtocol' has not been set with slow configurations
Date Wed, 26 Jan 2011 18:06:45 GMT

     [ 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.


Mime
View raw message