You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Daryn Sharp (JIRA)" <ji...@apache.org> on 2017/10/11 19:24:00 UTC

[jira] [Created] (HDFS-12639) BPOfferService lock may stall all service actors

Daryn Sharp created HDFS-12639:
----------------------------------

             Summary: BPOfferService lock may stall all service actors
                 Key: HDFS-12639
                 URL: https://issues.apache.org/jira/browse/HDFS-12639
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: datanode
    Affects Versions: 2.8.0
            Reporter: Daryn Sharp


{{BPOfferService}} manages {{BPServiceActor}} instances for the active and standby.  It uses a RW lock to primarily protect registration information while determining the active/standby from heartbeats.

Unfortunately the write lock is held during command processing.  If an actor is experiencing high latency processing commands, the other actor will neither be able to register (blocked in createRegistration, setNamespaceInfo, verifyAndSetNamespaceInfo) nor process heartbeats (blocked in updateActorStatesFromHeartbeat).

The worst case scenario for processing commands while holding the lock is re-registration.  The actor will loop, catching and logging exceptions, leaving the other actor blocked for an non-deterministic (possibly infinite) amount of time.

The lock must not be held during command processing.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org