NPE when getting user authorizations
------------------------------------
Key: ACCUMULO-328
URL: https://issues.apache.org/jira/browse/ACCUMULO-328
Project: Accumulo
Issue Type: Bug
Components: client, tserver
Reporter: Keith Turner
Assignee: Billie Rinaldi
Fix For: 1.4.0
While running the concurrent random walk test, saw the following bug. I think
a user was deleted at around the same time the request for user auths came in.
Saw the follwing error in the random walk logs.
{noformat}
19 01:42:10,810 [randomwalk.Framework] ERROR: Error during random walk
java.lang.Exception: Error running node Concurrent.xml
at
org.apache.accumulo.server.test.randomwalk.Module.visit(Module.java:253)
at
org.apache.accumulo.server.test.randomwalk.Framework.run(Framework.java:61)
at
org.apache.accumulo.server.test.randomwalk.Framework.main(Framework.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.accumulo.start.Main$1.run(Main.java:89)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.Exception: Error running node ct.ChangeAuthorizations
at
org.apache.accumulo.server.test.randomwalk.Module.visit(Module.java:253)
at
org.apache.accumulo.server.test.randomwalk.Module.visit(Module.java:249)
... 8 more
Caused by: org.apache.accumulo.core.client.AccumuloException:
org.apache.thrift.TApplicationException: Internal error processing
getUserAuthorizations
at
org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:78)
at
org.apache.accumulo.core.client.admin.SecurityOperationsImpl.getUserAuthorizations(SecurityOperationsImpl.java:221)
at
org.apache.accumulo.server.test.randomwalk.concurrent.ChangeAuthorizations.visit(ChangeAuthorizations.java:43)
at
org.apache.accumulo.server.test.randomwalk.Module.visit(Module.java:249)
... 9 more
Caused by: org.apache.thrift.TApplicationException: Internal error processing
getUserAuthorizations
at
org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
at
org.apache.accumulo.core.client.impl.thrift.ClientService$Client.recv_getUserAuthorizations(ClientService.java:644)
at
org.apache.accumulo.core.client.impl.thrift.ClientService$Client.getUserAuthorizations(ClientService.java:625)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at cloudtrace.instrument.thrift.TraceWrap$2.invoke(TraceWrap.java:83)
at $Proxy0.getUserAuthorizations(Unknown Source)
at
org.apache.accumulo.core.client.admin.SecurityOperationsImpl$6.execute(SecurityOperationsImpl.java:224)
at
org.apache.accumulo.core.client.admin.SecurityOperationsImpl$6.execute(SecurityOperationsImpl.java:221)
at
org.apache.accumulo.core.client.impl.ServerClient.executeRaw(ServerClient.java:84)
at
org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:66)
... 12 more
{noformat}
Searched the tablet server logs by time to find the server that execute the
security operation and found the following.
{noformat}
19 01:42:10,808 [thrift.ClientService$Processor] ERROR: Internal error
processing getUserAuthorizations
java.lang.IllegalArgumentException: argument was null:Is null- arg1? true
at
org.apache.accumulo.core.util.ArgumentChecker.notNull(ArgumentChecker.java:31)
at
org.apache.accumulo.core.security.Authorizations.<init>(Authorizations.java:102)
at
org.apache.accumulo.server.security.ZKAuthenticator$Tool.convertAuthorizations(ZKAuthenticator.java:641)
at
org.apache.accumulo.server.security.ZKAuthenticator.getUserAuthorizations(ZKAuthenticator.java:341)
at
org.apache.accumulo.server.security.Auditor.getUserAuthorizations(Auditor.java:137)
at
org.apache.accumulo.server.client.ClientServiceHandler.getUserAuthorizations(ClientServiceHandler.java:145)
at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at cloudtrace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:58)
at $Proxy2.getUserAuthorizations(Unknown Source)
at
org.apache.accumulo.core.client.impl.thrift.ClientService$Processor$getUserAuthorizations.process(ClientService.java:2371)
at
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor.process(TabletClientService.java:2037)
at
org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:151)
at
org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:631)
at
org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:199)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:662)
{noformat}
Need better debugging info when this occurs on the client side, need to know
which tablet server.
--
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