hadoop-hdfs-issues mailing list archives

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

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

Chris Nauroth commented on HDFS-5014:
-------------------------------------

bq. Updated patch with read/write lock mechanism instead of synchronization

Nice work!  I think the basic approach is going to work.  However, I think {{updateActorStatesFromHeartbeat}}
needs to hold the write lock for the entire method.  Otherwise, we could get some unfortunate
interleavings of state in {{bpServiceToActive}}, {{bposThinksActive}}, {{lastActiveClaimTxId}},
and {{isMoreRecentClaim}}.

bq. -1 findbugs. The patch appears to introduce 1 new Findbugs (version 1.3.9) warnings.

This is somewhat spurious, but your workaround from the earlier patch would still work to
silence these warnings.

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

Mime
View raw message