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

Kihwal Lee commented on HDFS-14443:
-----------------------------------

{{msync()}} is a write op and it looks like read requests can generate 
{{msync()}} against the active NN.  So, yes, when observer is enabled, read 
requests can generate write requests, although I am not sure whether it really 
needs to be a write op.

{code}
  @Override // ClientProtocol
  public void msync() throws IOException {
    // Check for write access to ensure that msync only happens on active
    namesystem.checkOperation(OperationCategory.WRITE);
  }
{code}

When the client does not know who is active, this can happen. I am guessing 
this is part of figuring out who is the active.  So it will depend on the 
implementation of the particular failover proxy provider.  Does the shell 
command fail?  If not, I would say this is by design however undesirable it may 
look.

> Throwing RemoteException in the time of Read Operation
> ------------------------------------------------------
>
>                 Key: HDFS-14443
>                 URL: https://issues.apache.org/jira/browse/HDFS-14443
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Ranith Sardar
>            Priority: Major
>
> 2019-04-19 20:54:59,178 DEBUG 
> org.apache.hadoop.io.retry.RetryInvocationHandler: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException):
>  Operation category WRITE is not supported in state observer. Visit 
> [https://s.apache.org/sbnn-error]
>  at 
> org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:98)
>  at 
> org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:1990)
>  at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1443)
>  at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.msync(NameNodeRpcServer.java:1372)
>  at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.msync(ClientNamenodeProtocolServerSideTranslatorPB.java:1929)
>  at 
> org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
>  at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:531)
>  at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1036)
>  at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:927)
>  at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:862)
>  at java.security.AccessController.doPrivileged(Native Method)
>  at javax.security.auth.Subject.doAs(Subject.java:422)
>  at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
>  at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2791)
>  , while invoking $Proxy5.getFileInfo over 
> [host-*-*-*-*/*.*.*.*:6*5,host-*-*-*-*/*.*.*.*:**,host-*-*-*-*/*.*.*.*:6**5]. 
> Trying to failover immediately.
>  
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException):
>  Operation category WRITE is not supported in state observer. Visit 
> [https://s.apache.org/sbnn-error]
>  at 
> org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:98)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to