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

Manoj Govindassamy commented on HDFS-10793:
-------------------------------------------


Here is a test showing the problem. 
-- Set the config key "dfs.namenode.audit.loggers" to a class implementing 
HdfsAuditLogger the older way. That is, class implementing the method with *no* 
CallerContext arg.
-- Run a client which runs setTimes() operation on the cluster filesystem
-- Client operation fails as the custom AuditLogger is not binary compatible 
with the new one

{noformat}
252 2016-08-24 18:27:30,010 [IPC Server handler 0 on 63080] WARN  ipc.Server 
(Server.java:logException(2494)) - IPC Server handler 0 on 63080, call 
org.apache.hadoop.hdfs.protocol.ClientProtocol.setTimes from 127.0.0.1:63086 
Call#5 Retry#0
253 java.lang.AbstractMethodError: 
org.apache.hadoop.hdfs.server.namenode.HdfsAuditLogger.logAuditEvent(ZLjava/lang/String;Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/apache/hadoop/fs/FileStatus;Lorg/apache/hadoop/ipc/CallerContext;Lorg/apache/hadoop/security/UserGroupInformation;Lorg/apache/hadoop/hdfs/security/token/delegation/DelegationTokenSecretManager;)V
254         at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.logAuditEvent(FSNamesystem.java:362)
255         at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.logAuditEvent(FSNamesystem.java:340)
256         at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setTimes(FSNamesystem.java:1913)
257         at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setTimes(NameNodeRpcServer.java:1344)
258         at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setTimes(ClientNamenodeProtocolServerSideTranslatorPB.java:948)
259         at 
org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
260         at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:663)
261         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:989)
262         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2423)
263         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2419)
264         at java.security.AccessController.doPrivileged(Native Method)
265         at javax.security.auth.Subject.doAs(Subject.java:422)
266         at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1790)
267         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2419)
{noformat}

> Fix HdfsAuditLogger binary incompatibility introduced by HDFS-9184
> ------------------------------------------------------------------
>
>                 Key: HDFS-10793
>                 URL: https://issues.apache.org/jira/browse/HDFS-10793
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>            Reporter: Andrew Wang
>            Assignee: Manoj Govindassamy
>            Priority: Blocker
>
> HDFS-9184 added a new parameter to an existing method signature in 
> HdfsAuditLogger, which is a Public/Evolving class. This breaks binary 
> compatibility with implementing subclasses.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to