helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kanak Biscuitwala (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HELIX-124) race condition in ZkHelixManager.handleNewSession()
Date Tue, 12 Nov 2013 23:39:17 GMT

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

Kanak Biscuitwala updated HELIX-124:
------------------------------------

    Fix Version/s: 0.6.2-incubating

> race condition in ZkHelixManager.handleNewSession()
> ---------------------------------------------------
>
>                 Key: HELIX-124
>                 URL: https://issues.apache.org/jira/browse/HELIX-124
>             Project: Apache Helix
>          Issue Type: Sub-task
>            Reporter: Zhen Zhang
>            Assignee: Zhen Zhang
>             Fix For: 0.6.2-incubating
>
>
> ZkHelixManager.handleNewSession() is an async callback. There is a race condition when
we have multiple consecutive session expiries. for example:
> 1) sessionExpiry_0 happens, and newSessionId is sessionId_1
> 2) sessionExpiry_1 happens, and newSessionId is sessionId_2
> 3) handleNewSession caused by sessionExpiry_0 is invoked
> 4) handleNewSession caused by sessionExpiry_1 is invoked
> Since 3) and 4) both happen after 2), we will get zk handleNewSession callback twice
with the same session id (sessionId_2)
> This is problematic:
> if the manager is a PARTICIPANT, the second handleNewSession() will fail to create live-instance
and reset all listeners. then we come to the situation where live-instance exists but no listener
is registered for the PARTICIPANT
> if the manager is a CONTROLLER, we add listeners twice



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message