Uploaded image for project: 'ERM Platform'
  1. ERM Platform
  2. ERM-2887

Recreating tenant requires restarting of the mod-service-interactions

    XMLWordPrintable

Details

    • Future Releases
    • Bienenvolk
    • TBD
    • Orchid (R1 2023)

    Description

      Overview:
      The process of recreating tenant fails with the following error if mod-service-interactions has not been restarted between deleting and creating tenant:

      java.lang.Exception: Failed to install modules POST request for mod-service-interaction-2.2.2 /_/tenant failed with 500: 
      {
          "error": 500,
          "message": "org.postgresql.util.PSQLException: ERROR: relation \"refdata_category\" does not exist\n  Position: 158",
          "stackTrace": [
              "org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)",
              "org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366)",
              "org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356)",
              "org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496)",
              "org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413)",
              "org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)",
              "org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:134)",
              "com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)",
              "org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)",
              "org.hibernate.loader.Loader.getResultSet(Loader.java:2303)",
              "org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2056)",
              "org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2018)",
              "org.hibernate.loader.Loader.doQuery(Loader.java:948)",
              "org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)",
              "org.hibernate.loader.Loader.doList(Loader.java:2849)",
              "org.hibernate.loader.Loader.doList(Loader.java:2831)",
              "org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2663)",
              "org.hibernate.loader.Loader.list(Loader.java:2658)",
              "org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)",
              "org.hibernate.internal.SessionImpl.list(SessionImpl.java:1877)",
              "org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:370)",
              "org.grails.orm.hibernate.query.AbstractHibernateQuery.singleResultViaListCall(AbstractHibernateQuery.java:808)",
              "org.grails.orm.hibernate.query.AbstractHibernateQuery.singleResult(AbstractHibernateQuery.java:795)",
              "org.grails.datastore.gorm.finders.AbstractFindByFinder.invokeQuery(AbstractFindByFinder.java:35)",
              "org.grails.datastore.gorm.finders.AbstractFindByFinder$1.doInSession(AbstractFindByFinder.java:29)",
              "org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:319)",
              "org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:42)",
              "org.grails.datastore.gorm.finders.AbstractFindByFinder.doInvokeInternal(AbstractFindByFinder.java:27)",
              "org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:254)",
              "org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:392)",
              "org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:185)",
              "org.grails.datastore.gorm.GormEntity$Trait$Helper.staticMethodMissing(GormEntity.groovy:777)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "com.k_int.web.toolkit.refdata.RefdataValue$_lookupOrCreate_closure2.doCall(RefdataValue.groovy:69)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)",
              "org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)",
              "grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)",
              "org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:1014)",
              "org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:877)",
              "org.grails.datastore.gorm.GormEntity$Trait$Helper.withTransaction(GormEntity.groovy:941)",
              "com.k_int.web.toolkit.refdata.RefdataValue.lookupOrCreate(RefdataValue.groovy:67)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers$_setDefaults_closure2.doCall(GrailsDomainRefdataHelpers.groovy:120)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers.setDefaults(GrailsDomainRefdataHelpers.groovy:118)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers.setDefaults(GrailsDomainRefdataHelpers.groovy:85)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers$_setDefaultsForTenant_closure1$_closure14.doCall(GrailsDomainRefdataHelpers.groovy:77)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers$_setDefaultsForTenant_closure1.doCall(GrailsDomainRefdataHelpers.groovy:76)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "grails.gorm.multitenancy.Tenants$_withId_closure2$_closure6.doCall(Tenants.groovy:265)",
              "org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:297)",
              "org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:241)",
              "org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:153)",
              "org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:207)",
              "org.grails.orm.hibernate.AbstractHibernateDatastore.withNewSession(AbstractHibernateDatastore.java:369)",
              "grails.gorm.multitenancy.Tenants$_withId_closure2.doCall(Tenants.groovy:258)",
              "grails.gorm.multitenancy.Tenants$CurrentTenant.withTenant(Tenants.groovy:358)",
              "grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:236)",
              "grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:169)",
              "com.k_int.web.toolkit.refdata.GrailsDomainRefdataHelpers.setDefaultsForTenant(GrailsDomainRefdataHelpers.groovy:75)",
              "com.k_int.okapi.OkapiTenantAdminService$__tt__enableTenant_closure11$_closure15.doCall(OkapiTenantAdminService.groovy:133)",
              "grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)",
              "org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)",
              "grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)",
              "com.k_int.web.toolkit.utils.GormUtils.withTransaction(GormUtils.groovy:65)",
              "com.k_int.web.toolkit.utils.GormUtils.withNewTransaction(GormUtils.groovy:52)",
              "com.k_int.okapi.OkapiTenantAdminService$__tt__enableTenant_closure11.doCall(OkapiTenantAdminService.groovy:132)",
              "services.k_int.core.FolioLockService.$tt__federatedLockAndDo(FolioLockService.groovy:198)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)",
              "org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)",
              "grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)",
              "com.k_int.okapi.OkapiTenantAdminService.$tt__enableTenant(OkapiTenantAdminService.groovy:98)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
              "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
              "grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)",
              "org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)",
              "grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)",
              "com.k_int.okapi.TenantController.index(TenantController.groovy:39)",
              "org.grails.core.DefaultGrailsControllerClass$MethodHandleInvoker.invoke(DefaultGrailsControllerClass.java:223)",
              "org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:188)",
              "org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)",
              "org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)",
              "org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)",
              "org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)",
              "org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)",
              "org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)",
              "io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)",
              "org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)",
              "org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)",
              "grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:54)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:64)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)",
              "org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)",
              "org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)",
              "org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)",
              "io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)",
              "io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)",
              "io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)",
              "io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)",
              "io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)",
              "io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)",
              "io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)",
              "io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)",
              "io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)",
              "io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)",
              "io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)",
              "io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)",
              "io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)",
              "io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)",
              "io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)",
              "io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)",
              "io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)",
              "io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)",
              "io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)",
              "io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)",
              "io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)",
              "io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)",
              "io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)",
              "io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)",
              "io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)",
              "io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)",
              "io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)",
              "java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)",
              "java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)",
              "java.base/java.lang.Thread.run(Thread.java:829)"
          ]
      }

      Steps to Reproduce:

      1. Disable all modules on the tenant (including mod-service-interactions)
      2. Delete tenant
      3. Create tenant with the same name
      4. Enable all modules on the new tenant (including mod-service-interactions)

      Expected Results:

      Successful enabling of all modules on the new tenant.
      Actual Results:

      Enabling fails with the error above.
      Additional Information:
      There are a temporary decision for this error: restarting of the module between deleting and creating of the tenant.

      Also I would like to mention that after disabling of the module there are no any objects related to the deleted tenant for this module in the database.

      This error was also reproduced couple times for mod-licenses.
      Interested parties:

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                ethan Ethan Freestone
                vitalii_ustalu Vitalii Ustalu
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:

                  TestRail: Runs

                    TestRail: Cases