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 "Chen Liang (JIRA)" <ji...@apache.org> on 2017/06/05 22:37:12 UTC
[jira] [Created] (HDFS-11932) BPServiceActor thread name is not
correctly set
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-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org