[
https://issues.apache.org/jira/browse/HDFS-15115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17021120#comment-17021120
]
David Mollitor commented on HDFS-15115:
---------------------------------------
Thanks for looping me in.
I've never liked this setup with the {{StringBuilder}} from the start. It's
just not the right way to do DEBUG logging. All the logging should be
generated in one block and not concatenated piecemeal. However, I submitted a
patch (slightly updated from v1) so that the {{builder}} is always populated
and will therefore not throw NPE.
However, please note that if the DEBUG logging is enabled sometime during
execution, the first log message may be only partial... that is, the first few
concatenations happen while DEBUG is disabled, and the last few happen while
DEBUG is enabled, and then the {{StringBuilder}} is sent to the logging
framework for output.
> Namenode crash caused by NPE in BlockPlacementPolicyDefault when dynamically
> change logger to debug
> ---------------------------------------------------------------------------------------------------
>
> Key: HDFS-15115
> URL: https://issues.apache.org/jira/browse/HDFS-15115
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: wangzhixiang
> Assignee: David Mollitor
> Priority: Major
> Attachments: HDFS-15115.001.patch, HDFS-15115.2.patch
>
>
> To get debug info, we dynamically change the logger of
> BlockPlacementPolicyDefault to debug when namenode is running. However, the
> Namenode crashs. From the log, we find some NPE in
> BlockPlacementPolicyDefault.chooseRandom. Because *StringBuilder builder*
> will be used 4 times in BlockPlacementPolicyDefault.chooseRandom method.
> While the *builder* only initializes in the first time of this method. If we
> change the logger of BlockPlacementPolicyDefault to debug after the part, the
> *builder* in remaining part is *NULL* and cause *NPE*
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]