db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jørgen Løland (JIRA) <j...@apache.org>
Subject [jira] Commented: (DERBY-3358) After an incorrect(unsuccesfull) startMaster comand, further correct startMaster attempts also fail.
Date Fri, 07 Mar 2008 09:43:46 GMT

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

Jørgen Løland commented on DERBY-3358:
--------------------------------------

I now understand why you are catching Throwable. I still don't agree that it is a good thing
to do because there are many pitfalls, but I guess that's just a matter of opinion. Here is
some food-for-thought:

* The class javadoc of java.lang.Error says:
"An Error is a subclass of Throwable that indicates serious problems that a reasonable application
should not try to catch. Most such errors are abnormal conditions."

I interpret this as being something "bigger" than replication that should be reported further
up the system. I checked how TransactionResourceImpl#handleException deals with Errors and
found, e.g., that it has special treatment for ThreadDeath Errors.

* Looking more closely at ThreadDeath, the javadoc says:
"An application should catch instances of this class only if it must clean up after being
terminated asynchronously. If ThreadDeath is caught by a method, it is important that it be
re-thrown so that the thread actually dies."

I haven't checked the other Errors, but there may be similar pitfalls around. 

> After an incorrect(unsuccesfull) startMaster comand, further correct startMaster attempts
also fail.
> ----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3358
>                 URL: https://issues.apache.org/jira/browse/DERBY-3358
>             Project: Derby
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 10.4.0.0
>         Environment: Trunk (615841) + patch DERBY-3205/stopSlave_v1b
>            Reporter: Ole Solberg
>            Assignee: V.Narayanan
>         Attachments: Derby3358.diff, Derby3358.stat, Derby3358_v2.diff, Derby3358_v2.stat,
Derby3358_v3.diff, Derby3358_v3.stat, Derby3358_v4.diff, Derby3358_v4.stat, Derby3358_v5.diff,
Derby3358_v5.stat
>
>
> Slave and master servers started.
> startSlave:
> CONNECT 'jdbc:derby://atum11:9999/test;startSlave=true;slaveHost=atum11;slavePort=8989';
> ERROR XRE08: DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE08, SQLERRMC: Replication slave
mode started successfully for database 'test'. Connection refused because the database is
in replication slave mode. 
> startMaster without specifying slavePort - will use default?
> CONNECT 'jdbc:derby://atum11:8888/test;startMaster=true;slaveHost=atum11';
> ERROR XRE04: DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE04, SQLERRMC: nullXRE04
> master derby.log:
> 2008-01-29 10:02:53.097 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.0.0 alpha
- (615841M): instance c013800d-0117-c4fb-9156-000003bf6570
> on database directory /export/home/tmp/os136789/Replication_common_Trunk/master/test
 
> Database Class Loader started - derby.database.classpath=''
> 2008-01-29 10:02:53.256 GMT Thread[DRDAConnThread_2,5,main] (XID = 419), (SESSIONID =
0), (DATABASE = test), (DRDAID = {1}), Cleanup action starting
> java.sql.SQLException: Could not establish a connection to the peer of the replicated
database 'null'.
> .
> .
> Cleanup action completed
> 2008-01-29 10:02:53.260 GMT Thread[DRDAConnThread_2,5,main] (DATABASE = test), (DRDAID
= {1}), Could not establish a connection to the peer of the replicated database 'null'.
> startMaster specyfying slavePort:
> CONNECT 'jdbc:derby://atum11:8888/test;startMaster=true;slaveHost=atum11;slavePort=8989';
> ERROR XRE04: DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE04, SQLERRMC: nullXRE04
> master derby.log:
> 2008-01-29 10:03:38.201 GMT Thread[DRDAConnThread_2,5,main] (XID = 420), (SESSIONID =
1), (DATABASE = test), (DRDAID = {2}), Cleanup action starting
> java.sql.SQLException: Could not establish a connection to the peer of the replicated
database 'null'.
> .
> .
> Cleanup action completed
> 2008-01-29 10:03:38.205 GMT Thread[DRDAConnThread_2,5,main] (DATABASE = test), (DRDAID
= {2}), Could not establish a connection to the peer of the replicated database 'null'.
> Additional observation/comment:
> ----------------------------------------
> It would be helpful for debugging if slaveHost and slavePort were written in error messages
and into derby.log.

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