Uploaded image for project: 'Sentry'
  1. Sentry
  2. SENTRY-803

TestLinkEndToEnd.testUpdateDtestUpdateDeleteLinkeleteLink test failure: SentryAlreadyExistsException: Role: role4

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.1
    • Fix Version/s: 1.6.0
    • Component/s: Sqoop plugin
    • Labels:
      None

      Description

      see this error very often, seems like it will be good if could clean up test data (roles) after each test in TestLinkEndToEnd.java. JDK 7 returns a more or less random order.

      mvn -Dtest=TestLinkEndToEnd test

      Running org.apache.sentry.tests.e2e.sqoop.TestLinkEndToEnd
      Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 55.852 sec <<< FAILURE! - in org.apache.sentry.tests.e2e.sqoop.TestLinkEndToEnd
      testUpdateDtestUpdateDeleteLinkeleteLink on testUpdateDtestUpdateDeleteLinkeleteLink(org.apache.sentry.tests.e2e.sqoop.TestLinkEndToEnd)(org.apache.sentry.tests.e2e.sqoop.TestLinkEndToEnd)  Time elapsed: 0.225 sec  <<< FAILURE!
      org.apache.sqoop.common.SqoopException: CLIENT_0001:Server has returned exception
      	at org.apache.sqoop.client.request.ResourceRequest.doHttpRequest(ResourceRequest.java:129)
      	at org.apache.sqoop.client.request.ResourceRequest.post(ResourceRequest.java:175)
      	at org.apache.sqoop.client.request.AuthorizationResourceRequest.createRole(AuthorizationResourceRequest.java:66)
      	at org.apache.sqoop.client.request.SqoopResourceRequests.createRole(SqoopResourceRequests.java:173)
      	at org.apache.sqoop.client.SqoopClient.createRole(SqoopClient.java:570)
      	at org.apache.sentry.tests.e2e.sqoop.TestLinkEndToEnd.testUpdateDtestUpdateDeleteLinkeleteLink(TestLinkEndToEnd.java:122)
      Caused by: org.apache.sqoop.common.SqoopException: AUTH_0014:Authorization exception - Unable to excute command on sentry server: Role: role4. Server Stacktrace: org.apache.sentry.provider.db.SentryAlreadyExistsException: Role: role4
      	at org.apache.sentry.provider.db.service.persistent.SentryStore.createSentryRole(SentryStore.java:310)
      	at org.apache.sentry.provider.db.generic.service.persistent.DelegateSentryStore.createRole(DelegateSentryStore.java:102)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor$2.handle(SentryGenericPolicyProcessor.java:284)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor.requestHandle(SentryGenericPolicyProcessor.java:173)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor.create_sentry_role(SentryGenericPolicyProcessor.java:279)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyService$Processor$create_sentry_role.getResult(SentryGenericPolicyService.java:773)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyService$Processor$create_sentry_role.getResult(SentryGenericPolicyService.java:758)
      	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
      	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
      	at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:123)
      	at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding.execute(SqoopAuthBinding.java:387)
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding.createRole(SqoopAuthBinding.java:149)
      	at org.apache.sentry.sqoop.authz.SentryAccessController.createRole(SentryAccessController.java:50)
      	at org.apache.sentry.sqoop.authz.SentryAuthorizationHander.createRole(SentryAuthorizationHander.java:54)
      	at org.apache.sqoop.handler.AuthorizationRequestHandler.createRole(AuthorizationRequestHandler.java:215)
      	at org.apache.sqoop.handler.AuthorizationRequestHandler.handleEvent(AuthorizationRequestHandler.java:96)
      	at org.apache.sqoop.server.v1.AuthorizationServlet.handlePostRequest(AuthorizationServlet.java:80)
      	at org.apache.sqoop.server.SqoopProtocolServlet.doPost(SqoopProtocolServlet.java:63)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:572)
      	at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:269)
      	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:542)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.apache.sentry.provider.db.SentryAlreadyExistsException: Role: role4. Server Stacktrace: org.apache.sentry.provider.db.SentryAlreadyExistsException: Role: role4
      	at org.apache.sentry.provider.db.service.persistent.SentryStore.createSentryRole(SentryStore.java:310)
      	at org.apache.sentry.provider.db.generic.service.persistent.DelegateSentryStore.createRole(DelegateSentryStore.java:102)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor$2.handle(SentryGenericPolicyProcessor.java:284)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor.requestHandle(SentryGenericPolicyProcessor.java:173)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyProcessor.create_sentry_role(SentryGenericPolicyProcessor.java:279)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyService$Processor$create_sentry_role.getResult(SentryGenericPolicyService.java:773)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericPolicyService$Processor$create_sentry_role.getResult(SentryGenericPolicyService.java:758)
      	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
      	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
      	at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:123)
      	at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      
      	at org.apache.sentry.service.thrift.Status.throwIfNotOk(Status.java:100)
      	at org.apache.sentry.provider.db.generic.service.thrift.SentryGenericServiceClient.createRole(SentryGenericServiceClient.java:179)
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding$1.run(SqoopAuthBinding.java:152)
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding$1.run(SqoopAuthBinding.java:149)
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding.execute(SqoopAuthBinding.java:383)
      	at org.apache.sentry.sqoop.binding.SqoopAuthBinding.createRole(SqoopAuthBinding.java:149)
      	at org.apache.sentry.sqoop.authz.SentryAccessController.createRole(SentryAccessController.java:50)
      	at org.apache.sentry.sqoop.authz.SentryAuthorizationHander.createRole(SentryAuthorizationHander.java:54)
      	at org.apache.sqoop.handler.AuthorizationRequestHandler.createRole(AuthorizationRequestHandler.java:215)
      	at org.apache.sqoop.handler.AuthorizationRequestHandler.handleEvent(AuthorizationRequestHandler.java:96)
      	at org.apache.sqoop.server.v1.AuthorizationServlet.handlePostRequest(AuthorizationServlet.java:80)
      	at org.apache.sqoop.server.SqoopProtocolServlet.doPost(SqoopProtocolServlet.java:63)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:572)
      	at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:269)
      	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:542)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      	at java.lang.Thread.run(Thread.java:745)
      
      
      Results :
      
      Failed tests:
        TestLinkEndToEnd.testUpdateDtestUpdateDeleteLinkeleteLink:122 ยป Sqoop CLIENT_0...
      
      Tests run: 3, Failures: 1, Errors: 0, Skipped: 0
      

      shenguoquan, could you help investigate this one. this error causes test to fail intermittently. For example, if the first time run mvn -Dtest=TestLinkEndToEnd test, test passes, but if run the second time, the failure will pop up. it will be better it sooner. thanks!

        Attachments

        1. SENTRY-803-0.patch
          5 kB
          Anne Yu
        2. SENTRY-803-1.patch
          5 kB
          Anne Yu

          Activity

            People

            • Assignee:
              anneyu Anne Yu
              Reporter:
              anneyu Anne Yu
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: