Uploaded image for project: 'Atlas'
  1. Atlas
  2. ATLAS-4185

[Atlas: Glossary Term Bulk Import] Facing intermittent failures with Bulk Import

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • atlas-core
    • None

    Description

      Input used:

      GlossaryName, TermName, ShortDescription, LongDescription, Examples, Abbreviation, Usage, AdditionalAttributes, TranslationTerms, ValidValuesFor, Synonyms, ReplacedBy, ValidValues, ReplacementTerms, SeeAlso, TranslatedTerms, IsA, Antonyms, Classifies, PreferredToTerms, PreferredTerms
      glossaryBulkImport_2,BwTZ_1
      glossaryBulkImport_2,BwTZ_2
      glossaryBulkImport_2,BwTZ_3
      glossaryBulkImport_2,BwTZ_4
      glossaryBulkImport_2,BwTZ_5
      glossaryBulkImport_2,BwTZ_6
      glossaryBulkImport_2,BwTZ_7
      glossaryBulkImport_2,BwTZ_8
      glossaryBulkImport_2,BwTZ_9
      glossaryBulkImport_2,BwTZ_10
      glossaryBulkImport_2,BwTZ_11
      glossaryBulkImport_2,BwTZ_12
      glossaryBulkImport_2,BwTZ_13
      glossaryBulkImport_2,BwTZ_14
      glossaryBulkImport_2,BwTZ_15
      glossaryBulkImport_2,BwTZ_16
      glossaryBulkImport_2,BwTZ_17
      glossaryBulkImport_2,BwTZ_18
      glossaryBulkImport_2,BwTZ_19
      glossaryBulkImport_2,BwTZ_20
      glossaryBulkImport_2,BwTZ_21
      glossaryBulkImport_2,BwTZ_22
      glossaryBulkImport_2,BwTZ_23
      glossaryBulkImport_2,BwTZ_24
      glossaryBulkImport_2,BwTZ_25
      glossaryBulkImport_2,BwTZ_26
      glossaryBulkImport_2,BwTZ_27
      glossaryBulkImport_2,BwTZ_28
      glossaryBulkImport_2,BwTZ_29
      glossaryBulkImport_2,BwTZ_30 

      While performing bulk import AtlasBaseException is thrown

      2021-03-04 03:27:33,075 INFO  - [etp1527953000-559:knox:POST/api/atlas/v2/glossary/import] ~ Request from authenticated user: knox, URL=/api/atlas/v2/glossary/import?doAs=hrt_qa (AtlasAuthenticationFilter$KerberosFilterChainWrapper:739)
      2021-03-04 03:27:33,896 ERROR - [etp1527953000-559 - 25016961-548a-47ca-905e-3a0df3bcf8db:knox:POST/api/atlas/v2/glossary/import] ~ Error handling a request: 4716c7eab64cc999 (ExceptionMapperUtil:32)
      org.apache.atlas.exception.AtlasBaseException: Error occurred while creating glossary term: {0}
              at org.apache.atlas.glossary.GlossaryService.createGlossaryTerms(GlossaryService.java:1107)
              at org.apache.atlas.glossary.GlossaryService.importGlossaryData(GlossaryService.java:1092)
              at org.apache.atlas.glossary.GlossaryService$$FastClassBySpringCGLIB$$e1f893e0.invoke(<generated>)
              at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
              at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:668)
              at org.apache.atlas.glossary.GlossaryService$$EnhancerBySpringCGLIB$$d03b0914.importGlossaryData(<generated>)
              at org.apache.atlas.web.rest.GlossaryREST.importGlossaryData(GlossaryREST.java:988)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
              at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
              at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
              at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
              at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
              at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
              at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
              at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
              at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
              at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
              at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
              at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
              at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
              at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
              at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
              at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1411)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1651)
              at org.apache.atlas.web.filters.AuditFilter.doFilter(AuditFilter.java:106)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1638)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter$ServletFilterHttpInteraction.proceed(AtlasCSRFPreventionFilter.java:235)
              at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter.handleHttpInteraction(AtlasCSRFPreventionFilter.java:177)
              at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter.doFilter(AtlasCSRFPreventionFilter.java:190)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.apache.atlas.web.filters.AtlasAuthenticationFilter$KerberosFilterChainWrapper.doFilter(AtlasAuthenticationFilter.java:741)
              at org.apache.atlas.web.filters.AtlasAuthenticationFilter.doKerberosAuth(AtlasAuthenticationFilter.java:487)
              at org.apache.atlas.web.filters.AtlasAuthenticationFilter.doFilter(AtlasAuthenticationFilter.java:353)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.apache.atlas.web.filters.StaleTransactionCleanupFilter.doFilter(StaleTransactionCleanupFilter.java:55)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.apache.atlas.web.filters.ActiveServerFilter.doFilter(ActiveServerFilter.java:87)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.apache.atlas.web.filters.AtlasKnoxSSOAuthenticationFilter.doFilter(AtlasKnoxSSOAuthenticationFilter.java:142)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
              at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
              at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1630)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:567)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
              at org.eclipse.jetty.server.Server.handle(Server.java:501)
              at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
              at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
              at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
              at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
              at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
              at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
              at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
              at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
              at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
              at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      Caused by: org.apache.atlas.exception.AtlasBaseException: Glossary term with qualifiedName BwTZ_1@glossaryBulkImport_2 already exists
              at org.apache.atlas.glossary.GlossaryService.createTerm(GlossaryService.java:353)
              at org.apache.atlas.glossary.GlossaryService.createGlossaryTerms(GlossaryService.java:1105)
              ... 114 more
      2021-03-04 03:27:34,291 INFO  - [etp1527953000-472:] ~ Logged into Atlas as = hrt_qa, by proxyUser = null (AtlasAuthenticationFilter$KerberosFilterChainWrapper:724)

      The same import succeeded and all the terms got created successfully.

      If the term was already present, we might have hit https://issues.apache.org/jira/browse/ATLAS-4129 and none of the following terms would have created. 

      When same input was used with different set of 30 terms, it went through fine. This is seen once in a while.

      Attachments

        1. Screenshot 2021-03-04 at 3.39.32 PM.png
          412 kB
          Dharshana M Krishnamoorthy

        Activity

          People

            sidharthkmishra Sidharth Kumar Mishra
            dharshmk Dharshana M Krishnamoorthy
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: