[ 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