[
https://issues.apache.org/jira/browse/HDFS-11932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chen Liang updated HDFS-11932:
------------------------------
Attachment: HDFS-11932.001.patch
Post v001 patch to set the thread name after the thread gets started and
namespace info is set. Also slightly modified a log message as I found it
confusing when debugging this exception.
> 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
> Attachments: HDFS-11932.001.patch
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]