hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yongjun Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-7284) Add more debug info to BlockInfoUnderConstruction#setGenerationStampAndVerifyReplicas
Date Fri, 23 Oct 2015 15:37:27 GMT

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

Yongjun Zhang commented on HDFS-7284:
-------------------------------------

Hi [~jojochuang],

It's important to have consistent block name appear in the log, so people can analyze the
actions happened to a given block across the board by searching for the "blk_id_timestamp"
or "blk_id".

I'd suggest adding the following code to Block.java:

{code}
  /**
   */
  public static String toString(final Block b) {
    return b.getBlockName() + "_" + b.getGenerationStamp();
  }
  
  /**
   */
  @Override
  public String toString() {
    return toString(this);
  }
{code}

and change the message you are working on to
{code}
     NameNode.blockStateChangeLog.debug("BLOCK* Removing stale replica {}"
	          + " of {}", r, Block.toString(r));
{code}

Hi [~andrew.wang], does this sound good to you? I think the replica state that comes with
{{ReplicaUnderConstruction#toString}} would help debugging.

Thanks.


> Add more debug info to BlockInfoUnderConstruction#setGenerationStampAndVerifyReplicas
> -------------------------------------------------------------------------------------
>
>                 Key: HDFS-7284
>                 URL: https://issues.apache.org/jira/browse/HDFS-7284
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>    Affects Versions: 2.5.1
>            Reporter: Hu Liu,
>            Assignee: Wei-Chiu Chuang
>         Attachments: HDFS-7284.001.patch, HDFS-7284.002.patch
>
>
> When I was looking at some replica loss issue, I got the following info from log
> {code}
> 2014-10-13 01:54:53,104 INFO BlockStateChange: BLOCK* Removing stale replica from location
x.x.x.x
> {code}
> I could just know that a replica is removed, but I don't know which block and its timestamp.
I need to know the id and timestamp of the block from the log file.
> So it's better to add more info including block id and timestamp to the code snippet
> {code}
>     for (ReplicaUnderConstruction r : replicas) {
>       if (genStamp != r.getGenerationStamp()) {
>         r.getExpectedLocation().removeBlock(this);
>         NameNode.blockStateChangeLog.info("BLOCK* Removing stale replica "
>             + "from location: " + r.getExpectedLocation());
>       }
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message