Chen Liang created HDFS-11932:
---------------------------------

             Summary: BPServiceActor thread name is not correctly set
                 Key: HDFS-11932
                 URL: https://issues.apache.org/jira/browse/HDFS-11932
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: hdfs
            Reporter: Chen Liang
            Assignee: Chen Liang


When running unit tests (e.g. TestJMXGet), we often get this following 
exception, although the tests still passed:
{code}
WARN  datanode.DataNode (BPOfferService.java:getBlockPoolId(192)) - Block pool 
ID needed, but service not yet registered with NN
java.lang.Exception: trace 
at 
org.apache.hadoop.hdfs.server.datanode.BPOfferService.getBlockPoolId(BPOfferService.java:192)
 at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.formatThreadName(BPServiceActor.java:556)
 at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.start(BPServiceActor.java:544)
 at 
...
{code}

It seems that, although this does not affect normal operations, this is causing 
the thread name of BPServiceActor not correctly set as desired. More 
specifically,:
{code}
 bpThread = new Thread(this, formatThreadName("heartbeating", nnAddr));
 bpThread.setDaemon(true); // needed for JUnit testing
 bpThread.start();
{code}

The first line tries to call formatThreadName to get format a thread name, and 
formatThreadName is reading the value of BPOfferService#bpNSInfo. However this 
value is set only after the thread started (the third line above). So we get 
exception in the first line for reading non-existing value.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to