hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Nauroth (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-9232) JniBasedUnixGroupsMappingWithFallback fails on Windows with UnsatisfiedLinkError
Date Tue, 22 Jan 2013 07:32:13 GMT

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

Chris Nauroth commented on HADOOP-9232:
---------------------------------------

HADOOP-8712 will change the default hadoop.security.group.mapping to {{JniBasedUnixGroupsMappingWithFallback}}.
 This will break on Windows.  A workaround would be to manually configure hadoop.security.group.mapping
back to {{ShellBasedUnixGroupsMapping}}.

We can fix the problem by providing a proper implementation of the method on Windows in hadoop.dll.
 There is already similar logic in the winutils.exe groups command.

To see the problem, start a NameNode and DataNode with hadoop.dll on the path and core-site.xml
containing:

{code}
<property>
  <name>hadoop.security.group.mapping</name>
  <value>org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback</value>
</property>
{code}

When the DataNode connects to the NameNode, you'll see this stack trace in the NameNode log:

{noformat}
13/01/21 23:19:26 WARN ipc.Server: IPC Server handler 0 on 19000, call org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol.versionRequest
from 127.0.0.1:55352: error: java.lang.UnsatisfiedLinkError: org.apache.hadoop.security.JniBasedUnixGroupsMapping.getGroupForUser(Ljava/lang/String;)[Ljava/lang/String;
java.lang.UnsatisfiedLinkError: org.apache.hadoop.security.JniBasedUnixGroupsMapping.getGroupForUser(Ljava/lang/String;)[Ljava/lang/String;
	at org.apache.hadoop.security.JniBasedUnixGroupsMapping.getGroupForUser(Native Method)
	at org.apache.hadoop.security.JniBasedUnixGroupsMapping.getGroups(JniBasedUnixGroupsMapping.java:58)
	at org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
	at org.apache.hadoop.security.Groups.getGroups(Groups.java:89)
	at org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1311)
	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.<init>(FSPermissionChecker.java:51)
	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkSuperuserPrivilege(FSPermissionChecker.java:72)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkSuperuserPrivilege(FSNamesystem.java:4591)
	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.versionRequest(NameNodeRpcServer.java:962)
	at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.versionRequest(DatanodeProtocolServerSideTranslatorPB.java:203)
	at org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:18305)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:474)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1018)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1778)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1774)
	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:1450)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1772)
{noformat}

                
> JniBasedUnixGroupsMappingWithFallback fails on Windows with UnsatisfiedLinkError
> --------------------------------------------------------------------------------
>
>                 Key: HADOOP-9232
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9232
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: native, security
>    Affects Versions: trunk-win
>            Reporter: Chris Nauroth
>
> {{JniBasedUnixGroupsMapping}} calls native code which isn't implemented properly for
Windows, causing {{UnsatisfiedLinkError}}.  The fallback logic in {{JniBasedUnixGroupsMappingWithFallback}}
works by checking if the native code is loaded during startup.  In this case, hadoop.dll is
present and loaded, but it doesn't contain the right code.  There will be no attempt to fallback
to {{ShellBasedUnixGroupsMapping}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message