hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vinay (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-5014) BPOfferService#processCommandFromActor() synchronization on namenode RPC call delays IBR to Active NN, if Stanby NN is unstable
Date Tue, 19 Nov 2013 23:25:25 GMT

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

Vinay updated HDFS-5014:
------------------------

    Attachment: HDFS-5014-v2.patch

Thanks Uma for finding out the failure reason.

Its strange that cmd is null. Need to check.
Here is the updated patch to check for null for cmd before using it.

> BPOfferService#processCommandFromActor() synchronization on namenode RPC call delays
IBR to Active NN, if Stanby NN is unstable
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-5014
>                 URL: https://issues.apache.org/jira/browse/HDFS-5014
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode, ha
>    Affects Versions: 3.0.0, 2.0.4-alpha
>            Reporter: Vinay
>            Assignee: Vinay
>         Attachments: HDFS-5014-v2.patch, HDFS-5014-v2.patch, HDFS-5014-v2.patch, HDFS-5014-v2.patch,
HDFS-5014-v2.patch, HDFS-5014.patch, HDFS-5014.patch, HDFS-5014.patch, HDFS-5014.patch, HDFS-5014.patch,
HDFS-5014.patch, HDFS-5014.patch
>
>
> In one of our cluster, following has happened which failed HDFS write.
> 1. Standby NN was unstable and continously restarting due to some errors. But Active
NN was stable.
> 2. MR Job was writing files.
> 3. At some point SNN went down again while datanode processing the REGISTER command for
SNN. 
> 4. Datanodes started retrying to connect to SNN to register at the following code  in
BPServiceActor#retrieveNamespaceInfo() which will be called under synchronization.
> {code}      try {
>         nsInfo = bpNamenode.versionRequest();
>         LOG.debug(this + " received versionRequest response: " + nsInfo);
>         break;{code}
> Unfortunately in all datanodes at same point this happened.
> 5. For next 7-8 min standby was down, and no blocks were reported to active NN at this
point and writes have failed.
> So culprit is {{BPOfferService#processCommandFromActor()}} is completely synchronized
which is not required.



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

Mime
View raw message