[
https://issues.apache.org/jira/browse/DERBY-4812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Myrna van Lunteren closed DERBY-4812.
-------------------------------------
> ReplicationMessageTransmit run does not unwrap PrivilegedActionException
> which can lead to failure of
> replicationTests.ReplicationRun_Local_StateTest_part1_1
> -------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4812
> URL: https://issues.apache.org/jira/browse/DERBY-4812
> Project: Derby
> Issue Type: Bug
> Components: Replication
> Affects Versions: 10.5.3.1
> Environment: AIX 64 bit, IBM 1.6 jvm
> Reporter: Myrna van Lunteren
> Assignee: Kathey Marsden
> Fix For: 10.5.3.2, 10.6.2.3, 10.7.1.1
>
> Attachments: derby-4812-2_diff.txt, derby-4812_diff.txt,
> derby-4812_diff.txt, derby-4812_diff.txt, derby-4812_diff.txt
>
>
> One of our nightly tests failed with the exception (db path slightly edited)
> below.
> Looking at the source of
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit.run,
> it seems that the code does not completely unwrap the
> PrivilegedActionException (compared to how this is done in for example
> org.apache.derbyTesting.functionTests.util.PrivilegedFileOpsForTests.getFileInputStream()).
> It could be that the test is looking for the java.io.IOException, which it
> doesn't get (it gets the PrivilegedActionException instead).
> ----------------------
> 1)
> testReplication_Local_StateTest_part1_1(org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_StateTest_part1_1)junit.framework.AssertionFailedError:
> Got -1 XRE42 DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE42, SQLERRMC:
> Replicated database '/test/results/db_slave/wombat' shutdown.. Expected XRE41
> at java.lang.Throwable.<init>(Throwable.java:67)
> at
> junit.framework.AssertionFailedError.<init>(AssertionFailedError.java:11)
> at
> org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.assertException(ReplicationRun.java:3427)
> at
> org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_StateTest_part1_1._testPostStartedMasterAndSlave_StopSlave(ReplicationRun_Local_StateTest_part1_1.java:150)
> at
> org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_StateTest_part1_1.testReplication_Local_StateTest_part1_1(ReplicationRun_Local_StateTest_part1_1.java:134)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
> at
> org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.runBare(ReplicationRun.java:201)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> ----------------------
> The exception in the db_master-derby.log was:
> ------------------------
> Database Class Loader started - derby.database.classpath=''
> ---- BEGIN REPLICATION ERROR MESSAGE (9/13/10 9:40 AM) ----
> Replication slave got a fatal error for database
> '/test/results/db_master/wombat'. Replication will be stopped.
> ERROR XRE04: Could not establish a connection to the peer of the replicated
> database '/test/results/db_master/wombat' on address 'localhost:8888'.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.setupConnection(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.startMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.RawStore.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.RAMAccessManager.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.db.BasicDatabase.startReplicationMaster(Unknown Source)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleStartReplicationMaster(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
> at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
> at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown
> Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown
> Source)
> at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> Caused by: java.security.PrivilegedActionException:
> java.net.ConnectException: Connection refused
> at
> java.security.AccessController.doPrivileged(AccessController.java:255)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit.initConnection(Unknown
> Source)
> ... 17 more
> Caused by: java.net.ConnectException: Connection refused
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:378)
> at java.net.Socket.connect(Socket.java:528)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit$1.run(Unknown
> Source)
> at
> java.security.AccessController.doPrivileged(AccessController.java:251)
> ... 18 more
> ============= begin nested exception, level (1) ===========
> java.security.PrivilegedActionException: java.net.ConnectException:
> Connection refused
> at
> java.security.AccessController.doPrivileged(AccessController.java:255)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit.initConnection(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.setupConnection(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.startMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.RawStore.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.RAMAccessManager.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.db.BasicDatabase.startReplicationMaster(Unknown Source)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleStartReplicationMaster(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
> at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
> at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown
> Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown
> Source)
> at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> Caused by: java.net.ConnectException: Connection refused
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:378)
> at java.net.Socket.connect(Socket.java:528)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit$1.run(Unknown
> Source)
> at
> java.security.AccessController.doPrivileged(AccessController.java:251)
> ... 18 more
> ============= end nested exception, level (1) ===========
> ============= begin nested exception, level (2) ===========
> java.net.ConnectException: Connection refused
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:378)
> at java.net.Socket.connect(Socket.java:528)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit$1.run(Unknown
> Source)
> at
> java.security.AccessController.doPrivileged(AccessController.java:251)
> at
> org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit.initConnection(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.setupConnection(Unknown
> Source)
> at
> org.apache.derby.impl.store.replication.master.MasterController.startMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.RawStore.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.RAMAccessManager.startReplicationMaster(Unknown
> Source)
> at
> org.apache.derby.impl.db.BasicDatabase.startReplicationMaster(Unknown Source)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleStartReplicationMaster(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
> at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
> at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown
> Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown
> Source)
> at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> ============= end nested exception, level (2) ===========
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.