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

Kihwal Lee commented on HDFS-3347:
----------------------------------

The simplest thing you can do is to change HAState.setStateInternal() so that 
it catches Exception and revert the state before re-throwing.  Runtime 
exceptions such as IAE will be logged on the server-side at WARN level by RPC 
Server.

If we start thinking about handling exceptions and dropping streams in 
FSEditLog.initJournals(), the problem becomes more complex. In many places, it 
is assumed that FSEditLog.journalSet contains all configured edit streams, 
working or non-working. This can change in the future if the journal stream 
recovery becomes more dynamic based on something like zk-backed active journal 
set state storage.
                
> NullPointerException When trying to log to editstreams
> ------------------------------------------------------
>
>                 Key: HDFS-3347
>                 URL: https://issues.apache.org/jira/browse/HDFS-3347
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>         Environment: HDFS
>            Reporter: amith
>            Assignee: amith
>
> When i try to create a file i got a exception 
> {code}
> 2012-05-02 17:42:55,768 DEBUG hdfs.StateChange 
> (NameNodeRpcServer.java:create(402)) - *DIR* NameNode.create: file 
> /a._COPYING_ for DFSClient_NONMAPREDUCE_1515782500_1 at 10.18.40.95
> 2012-05-02 17:42:55,770 DEBUG hdfs.StateChange 
> (FSNamesystem.java:startFileInternal(1547)) - DIR* NameSystem.startFile: 
> src=/a._COPYING_, holder=DFSClient_NONMAPREDUCE_1515782500_1, 
> clientMachine=10.18.40.95, createParent=true, replication=1, 
> createFlag=[CREATE, OVERWRITE]
> 2012-05-02 17:42:55,778 WARN  ipc.Server (Server.java:run(1701)) - IPC Server 
> handler 1 on 8020, call org.apache.hadoop.hdfs.protocol.ClientProtocol.create 
> from 10.18.40.95:37973: error: java.lang.NullPointerException
> java.lang.NullPointerException
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.logEdit(FSEditLog.java:348)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.logGenerationStamp(FSEditLog.java:755)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.nextGenerationStamp(FSNamesystem.java:4357)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1621)
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1509)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.create(NameNodeRpcServer.java:409)
>       at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.create(ClientNamenodeProtocolServerSideTranslatorPB.java:200)
>       at 
> org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:42590)
>       at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:428)
>       at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:905)
>       at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1688)
>       at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1684)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:396)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1205)
>       at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1682)
> {code}
> analysing the same, will provide the details soon.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to