db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "V.Narayanan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3358) After an incorrect(unsuccesfull) startMaster comand, further correct startMaster attempts also fail.
Date Mon, 25 Feb 2008 09:54:51 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

V.Narayanan updated DERBY-3358:
-------------------------------

    Attachment: Derby3358.stat
                Derby3358.diff

Please find below a file by file explanation of the changes for this patch

M      java/engine/org/apache/derby/impl/services/replication/master/MasterController.java

* Added a variable boolean that indicates whether the master controller is currently running
or has
  been stopped. I thought I could manage with the earlier boolean variable stopMasterController
but
  decided against it because it seemed more tied with the stopMaster operation.

* moved start up parameter initialization from boot to startMaster method. This makes the
canSupport
  method also a place holder that returns true always.

* changed the startMaster, stopMaster and the startFailover methods to take into account the
boolean
  active.

* replaced the earlier uses of stopMasterController with active.
  
M      java/engine/org/apache/derby/impl/store/raw/RawStore.java

* The replication properties that are part of the bootServiceModule call no longer contain
the
  startup parameters. These have instead been moved to the startMaster method.

* The replicationProps are empty and not null because a null passed to a bootServiceModule
call
  results in a NullPointerException.

M      java/engine/org/apache/derby/iapi/services/replication/master/MasterFactory.java

* Changed the startMaster declaration to now accept the startup parameters as the method arguments.

M      java/engine/org/apache/derby/loc/messages.xml
M      java/shared/org/apache/derby/shared/common/reference/SQLState.java

* Added two new messages for the cases when the master has already been booted and when the
given
  replication mode is not supported.

--------------------------------------------------------------------------------------------------

I tried running a repro where I connected multiple times with the wrong port number to the
slave and finally attempted
a right connection. It works OK for me.

ij> connect 'jdbc:derby://localhost:1527/replicationdb';
ij> connect 'jdbc:derby://localhost:1527/replicationdb;startMaster=true;slaveHost=localhost;slavePort=8002';
ERROR XJ001: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
ij> connect 'jdbc:derby://localhost:1527/replicationdb;startMaster=true;slaveHost=localhost;slavePort=8003';
ERROR XJ001: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
ij> connect 'jdbc:derby://localhost:1527/replicationdb;startMaster=true;slaveHost=localhost;slavePort=8004';
ERROR XJ001: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
ij>  connect 'jdbc:derby://localhost:1527/replicationdb;startMaster=true;slaveHost=localhost;slavePort=8001';
ij(CONNECTION1)> select * from employee;
EMPNO      |NAME                          
------------------------------------------
1          |narayanan                     
2          |satya                         
3          |sanjay                        
4          |Anurag                        

4 rows selected
ij(CONNECTION1)> drop table employee;
0 rows inserted/updated/deleted
ij(CONNECTION1)> create table test(i int primary key, name varchar(40));
0 rows inserted/updated/deleted
ij(CONNECTION1)> insert into test values(1,'N');
1 row inserted/updated/deleted
ij(CONNECTION1)> insert into test values(2,'A');
1 row inserted/updated/deleted
ij(CONNECTION1)> insert into test values(3,'R');
1 row inserted/updated/deleted
ij(CONNECTION1)> select * from test;
I          |NAME                                    
----------------------------------------------------
1          |N                                       
2          |A                                       
3          |R                                       

3 rows selected
ij(CONNECTION1)> connect 'jdbc:derby://localhost:1527/replicationdb;failover=true';
ERROR XRE20: DERBY SQL error: SQLCODE: -1, SQLSTATE: XRE20, SQLERRMC: Failover performed successfully
for database 'replicationdb', the database has been shutdown.

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