You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "st.h (JIRA)" <ji...@apache.org> on 2013/02/20 15:23:13 UTC

[jira] [Commented] (AMQ-4122) Lease Database Locker failover broken

    [ https://issues.apache.org/jira/browse/AMQ-4122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13582204#comment-13582204 ] 

st.h commented on AMQ-4122:
---------------------------

I did some first tests with the 5.8 Release version. The lease database locker seems to work as expected now. However, it seems that it is always the last node that is available that becomes master. 
For instance:
start node1 -> node1 is master
start node2 -> node1 gives up being master; node2 becomes master
stop node1 -> node2 stays master
start node1 -> node2 gives up being master; node1 becomes master
While I am not sure if this is the intended behavior, right now I do not expect any issues with that.
                
> Lease Database Locker failover broken
> -------------------------------------
>
>                 Key: AMQ-4122
>                 URL: https://issues.apache.org/jira/browse/AMQ-4122
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.7.0
>         Environment: Java 7u9, SUSE 11, Mysql
>            Reporter: st.h
>            Assignee: Gary Tully
>             Fix For: 5.8.0
>
>         Attachments: activemq-kyle.xml, activemq.xml, activemq.xml
>
>
> We are using ActiveMQ 5.7.0 together with a mysql database and could not observe correct failover behavior with lease database locker.
> It seems that there is a race condition, which prevents the correct failover procedure.
> We noticed that when starting up two instances, both instance are becoming master.
> We did several test, including the following and could not observe intended functionality:
> - shutdown all instances
> - manipulate database lock that one node has lock and set expiry time in distance future
> - start up both instances. both instances are unable to acquire lock, as the lock hasn't expired, which should be correct behavior.
> - update the expiry time in database, so that the lock is expired.
> - first instance notices expired lock and becomes master
> - when second instance checks for lock, it also updates the database and becomes master.
> To my understanding the second instance should not be able to update the lock, as it is held by the first instance and should not be able to become master.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira