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] [Commented] (DERBY-4269) Failover did not succeed in 2 min.: testReplication_Local_3_p6_autocommit_OK
Date Fri, 22 Jun 2012 23:03:42 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13399698#comment-13399698

Knut Anders Hatlen commented on DERBY-4269:

FWIW, all the regression tests ran cleanly with the keys-only.diff patch. Even if it doesn't
fix the bug, I think it's an improvement as it slightly simplifies the code.

> But do we have any guarantee that the returned keys aren't used to access values (and
if so tat those are assumed to be non-null) elsewhere?

I don't know. However, what caused this particular bug, was that the override of Properties.propertyNames()
itself wasn't safe to use, so that it didn't give the thread-safety guarantees that one would
normally expect from Properties' methods. Callers of Properties' methods should already be
aware of the limitations of the synchronization guarantees provided by Properties (for example
that there is a possibility that getProperty() returns null, as there is no synchronization
preventing the property from getting removed after a check for the existence of a key). If
they don't take that into consideration, it's a bug that needs to be fixed. But in cases where
the actual bug lies in the override of a Properties method, like in this case, one cannot
reasonably expect the callers to handle the problem gracefully.

So although I cannot guarantee that all users of Properties instances in the engine are free
from bugs, I believe that the Properties class does provide the functionality to be used in
a thread-safe way, even without adding a semaphore that guards the call to info.clear().
> Failover did not succeed in 2 min.: testReplication_Local_3_p6_autocommit_OK
> ----------------------------------------------------------------------------
>                 Key: DERBY-4269
>                 URL: https://issues.apache.org/jira/browse/DERBY-4269
>             Project: Derby
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions:,,,,,,,,,
>         Environment: OS:
> Microsoft© Windows VistaT Ultimate - 6.0.6001 Service Pack 1 - WindowsNT 0 6
> JVM:
> Sun Microsystems Inc. 
> java version "1.4.2_16"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_16-b05)
> Java HotSpot(TM) Client VM (build 1.4.2_16-b05 mixed mode 32-bit)
>            Reporter: Ole Solberg
>            Assignee: Dag H. Wanvik
>              Labels: derby_triage10_5_2
>         Attachments: 4269-client-jstack.txt, 4269-master.txt, 4269-slave-jstack-before-failover.txt,
4269-slave.txt, DERBY-4269.diff, DERBY-4269.stat, DERBY-4269b.diff, db_master-derby.log, db_slave-derby.log.gz,
derby-4269-explicit-synch-2.diff, derby-4269-explicit-synch-3.diff, derby-4269-explicit-synch-3.status,
derby-4269-explicit-synch.diff, derby-4269-typo.diff, keys-only.diff
> Failover did not succeed.
> 2) testReplication_Local_3_p6_autocommit_OK(org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_3_p6)junit.framework.AssertionFailedError:
Failover did not succeed.
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun.connectPing(ReplicationRun.java:270)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_3_p6.derby_3896(ReplicationRun_Local_3_p6.java:200)
> 	at org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationRun_Local_3_p6.testReplication_Local_3_p6_autocommit_OK(ReplicationRun_Local_3_p6.java:86)
> 	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:106)
> 	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)
> See http://dbtg.thresher.com/derby/test/Daily/jvm1.4/testing/testlog/vista-64/782274-suitesAll_diff.txt

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


View raw message