hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Busbey (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-11969) ThreadLocal initialization in several classes is not thread safe
Date Fri, 15 May 2015 08:20:00 GMT

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

Sean Busbey commented on HADOOP-11969:
--------------------------------------

reopened HDFS-8332, which git bisect says is the cause of the test failures above.

> ThreadLocal initialization in several classes is not thread safe
> ----------------------------------------------------------------
>
>                 Key: HADOOP-11969
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11969
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: io
>            Reporter: Sean Busbey
>            Assignee: Sean Busbey
>            Priority: Critical
>              Labels: thread-safety
>         Attachments: HADOOP-11969.1.patch, HADOOP-11969.2.patch, HADOOP-11969.3.patch,
HADOOP-11969.4.patch
>
>
> Right now, the initialization of hte thread local factories for encoder / decoder in
Text are not marked final. This means they end up with a static initializer that is not guaranteed
to be finished running before the members are visible. 
> Under heavy contention, this means during initialization some users will get an NPE:
> {code}
> (2015-05-05 08:58:03.974 : solr_server_log.log) 
>  org.apache.solr.common.SolrException; null:java.lang.NullPointerException
> 	at org.apache.hadoop.io.Text.decode(Text.java:406)
> 	at org.apache.hadoop.io.Text.decode(Text.java:389)
> 	at org.apache.hadoop.io.Text.toString(Text.java:280)
> 	at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:764)
> 	at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.buildBaseHeader(DataTransferProtoUtil.java:81)
> 	at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.buildClientHeader(DataTransferProtoUtil.java:71)
> 	at org.apache.hadoop.hdfs.protocol.datatransfer.Sender.readBlock(Sender.java:101)
> 	at org.apache.hadoop.hdfs.RemoteBlockReader2.newBlockReader(RemoteBlockReader2.java:400)
> 	at org.apache.hadoop.hdfs.BlockReaderFactory.getRemoteBlockReader(BlockReaderFactory.java:785)
> 	at org.apache.hadoop.hdfs.BlockReaderFactory.getRemoteBlockReaderFromTcp(BlockReaderFactory.java:663)
> 	at org.apache.hadoop.hdfs.BlockReaderFactory.build(BlockReaderFactory.java:327)
> 	at org.apache.hadoop.hdfs.DFSInputStream.actualGetFromOneDataNode(DFSInputStream.java:1027)
> 	at org.apache.hadoop.hdfs.DFSInputStream.fetchBlockByteRange(DFSInputStream.java:974)
> 	at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:1305)
> 	at org.apache.hadoop.fs.FSInputStream.readFully(FSInputStream.java:78)
> 	at org.apache.hadoop.fs.FSDataInputStream.readFully(FSDataInputStream.java:107)
> ... SNIP...
> {code} 



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

Mime
View raw message