Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-29024

Fix WorkflowEndpointTest.testFetchTaskTargetDocumentsDeleted randomly failing against PostgreSQL

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: CI/CD

      Description

      See https://jenkins.platform.dev.nuxeo.com/job/nuxeo/job/nuxeo/job/PR-3930/88/
      Full stack trace attached.
      Log extract:

      Run unit tests / Run postgresql unit tests / org.nuxeo.ecm.restapi.server.WorkflowEndpointTest.testFetchTaskTargetDocumentsDeleted
      
      invoke on features error [Holder [type=class org.nuxeo.runtime.test.runner.MDCFeature], Holder [type=class org.nuxeo.runtime.test.runner.ConditionalIgnoreRule$Feature], Holder [type=class org.nuxeo.runtime.test.runner.RandomBug$Feature], Holder [type=class org.nuxeo.runtime.test.runner.WithFrameworkPropertyFeature], Holder [type=class org.nuxeo.runtime.test.runner.RuntimeFeature], Holder [type=class org.nuxeo.runtime.cluster.ClusterFeature], Holder [type=class org.nuxeo.runtime.test.runner.TransactionalFeature], Holder [type=class org.nuxeo.runtime.stream.RuntimeStreamFeature], Holder [type=class org.nuxeo.ecm.core.api.local.DummyLoginFeature], Holder [type=class org.nuxeo.ecm.core.work.WorkManagerFeature], Holder [type=class org.nuxeo.ecm.core.io.CoreIOFeature], Holder [type=class org.nuxeo.ecm.core.bulk.CoreBulkFeature], Holder [type=class org.nuxeo.ecm.core.test.CoreFeature], Holder [type=class org.nuxeo.directory.test.DirectoryFeature], Holder [type=class org.nuxeo.ecm.platform.test.UserManagerFeature], Holder [type=class org.nuxeo.ecm.platform.test.PlatformFeature], Holder [type=class org.nuxeo.runtime.test.runner.web.WebDriverFeature], Holder [type=class org.nuxeo.runtime.test.runner.ServletContainerFeature], Holder [type=class org.nuxeo.ecm.core.test.ServletContainerTransactionalFeature], Holder [type=class org.nuxeo.ecm.webengine.test.WebEngineFeatureCore], Holder [type=class org.nuxeo.ecm.webengine.test.WebEngineFeature], Holder [type=class org.nuxeo.ecm.automation.test.AutomationFeature], Holder [type=class org.nuxeo.ecm.automation.test.AutomationServerFeature], Holder [type=class org.nuxeo.ecm.platform.routing.test.WorkflowFeature], Holder [type=class org.nuxeo.runtime.management.ManagementFeature], Holder [type=class org.nuxeo.ecm.platform.audit.AuditFeature]]
      Pile d'exécution
      java.lang.AssertionError: invoke on features error [Holder [type=class org.nuxeo.runtime.test.runner.MDCFeature], Holder [type=class org.nuxeo.runtime.test.runner.ConditionalIgnoreRule$Feature], Holder [type=class org.nuxeo.runtime.test.runner.RandomBug$Feature], Holder [type=class org.nuxeo.runtime.test.runner.WithFrameworkPropertyFeature], Holder [type=class org.nuxeo.runtime.test.runner.RuntimeFeature], Holder [type=class org.nuxeo.runtime.cluster.ClusterFeature], Holder [type=class org.nuxeo.runtime.test.runner.TransactionalFeature], Holder [type=class org.nuxeo.runtime.stream.RuntimeStreamFeature], Holder [type=class org.nuxeo.ecm.core.api.local.DummyLoginFeature], Holder [type=class org.nuxeo.ecm.core.work.WorkManagerFeature], Holder [type=class org.nuxeo.ecm.core.io.CoreIOFeature], Holder [type=class org.nuxeo.ecm.core.bulk.CoreBulkFeature], Holder [type=class org.nuxeo.ecm.core.test.CoreFeature], Holder [type=class org.nuxeo.directory.test.DirectoryFeature], Holder [type=class org.nuxeo.ecm.platform.test.UserManagerFeature], Holder [type=class org.nuxeo.ecm.platform.test.PlatformFeature], Holder [type=class org.nuxeo.runtime.test.runner.web.WebDriverFeature], Holder [type=class org.nuxeo.runtime.test.runner.ServletContainerFeature], Holder [type=class org.nuxeo.ecm.core.test.ServletContainerTransactionalFeature], Holder [type=class org.nuxeo.ecm.webengine.test.WebEngineFeatureCore], Holder [type=class org.nuxeo.ecm.webengine.test.WebEngineFeature], Holder [type=class org.nuxeo.ecm.automation.test.AutomationFeature], Holder [type=class org.nuxeo.ecm.automation.test.AutomationServerFeature], Holder [type=class org.nuxeo.ecm.platform.routing.test.WorkflowFeature], Holder [type=class org.nuxeo.runtime.management.ManagementFeature], Holder [type=class org.nuxeo.ecm.platform.audit.AuditFeature]]
      	at org.nuxeo.runtime.test.runner.FeaturesLoader.apply(FeaturesLoader.java:114)
      	at org.nuxeo.runtime.test.runner.FeaturesLoader.apply(FeaturesLoader.java:104)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner.beforeSetup(FeaturesRunner.java:200)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$BeforeSetupStatement.evaluate(FeaturesRunner.java:321)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterMethodRunStatement.evaluate(FeaturesRunner.java:345)
      	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterTeardownStatement.evaluate(FeaturesRunner.java:362)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$RulesFactory$1.evaluate(FeaturesRunner.java:435)
      	at org.nuxeo.runtime.test.runner.RuntimeDeployment$DeploymentStatement.evaluate(RuntimeDeployment.java:326)
      	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
      	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
      	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterClassStatement.evaluate(FeaturesRunner.java:251)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$RulesFactory$1.evaluate(FeaturesRunner.java:435)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$BeforeClassStatement.evaluate(FeaturesRunner.java:234)
      	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
      	at org.junit.runners.Suite.runChild(Suite.java:128)
      	at org.junit.runners.Suite.runChild(Suite.java:27)
      	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
      	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
      	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
      	at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
      	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
      	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
      	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
      	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
      	at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
      	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
      	Suppressed: org.nuxeo.ecm.core.api.ConcurrentUpdateException: Failed to remove document 9af74364-483a-4249-9e84-949f330213c7, Concurrent update
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection.checkConcurrentUpdate(JDBCConnection.java:183)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.deleteRowsDirect(JDBCRowMapper.java:829)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.remove(JDBCRowMapper.java:1262)
      		at jdk.internal.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
      		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.doInvoke(JDBCMapperConnector.java:111)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.lambda$doConnectAndInvoke$0(JDBCMapperConnector.java:98)
      		at org.nuxeo.runtime.transaction.TransactionHelper.runInTransaction(TransactionHelper.java:607)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.doConnectAndInvoke(JDBCMapperConnector.java:95)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.invoke(JDBCMapperConnector.java:84)
      		at com.sun.proxy.$Proxy82.remove(Unknown Source)
      		at org.nuxeo.ecm.core.storage.sql.SoftRefCachingRowMapper.remove(SoftRefCachingRowMapper.java:454)
      		at org.nuxeo.ecm.core.storage.sql.PersistenceContext.removeNode(PersistenceContext.java:993)
      		at org.nuxeo.ecm.core.storage.sql.SessionImpl.removeNode(SessionImpl.java:1031)
      		at org.nuxeo.ecm.core.storage.sql.ra.ConnectionImpl.removeNode(ConnectionImpl.java:257)
      		at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.remove(SQLSession.java:625)
      		at org.nuxeo.ecm.core.storage.sql.coremodel.SQLDocumentLive.remove(SQLDocumentLive.java:165)
      		at org.nuxeo.ecm.core.storage.sql.coremodel.SQLDocumentLive.remove(SQLDocumentLive.java:171)
      		at org.nuxeo.ecm.core.api.AbstractSession.removeNotifyOneDoc(AbstractSession.java:1459)
      		at org.nuxeo.ecm.core.api.AbstractSession.removeDocument(AbstractSession.java:1431)
      		at org.nuxeo.ecm.core.api.AbstractSession.removeDocument(AbstractSession.java:1421)
      		at org.nuxeo.ecm.platform.routing.core.persistence.RouteModelsZipImporter.createOrUpdate(RouteModelsZipImporter.java:74)
      		at org.nuxeo.ecm.platform.filemanager.service.FileManagerService.createOrUpdateDocument(FileManagerService.java:361)
      		at org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.importRouteModel(DocumentRoutingServiceImpl.java:678)
      		at org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.importAllRouteModels(DocumentRoutingServiceImpl.java:660)
      		at org.nuxeo.ecm.platform.routing.core.listener.RouteModelsInitializator.doInitializeRepository(RouteModelsInitializator.java:39)
      		at org.nuxeo.ecm.core.repository.RepositoryInitializationHandler.initializeRepository(RepositoryInitializationHandler.java:93)
      		at org.nuxeo.ecm.core.repository.RepositoryInitializationHandler.initializeRepository(RepositoryInitializationHandler.java:91)
      		at org.nuxeo.ecm.core.repository.RepositoryService$2.run(RepositoryService.java:159)
      		at org.nuxeo.ecm.core.api.UnrestrictedSessionRunner.runUnrestricted(UnrestrictedSessionRunner.java:123)
      		at org.nuxeo.ecm.core.repository.RepositoryService.initializeRepository(RepositoryService.java:161)
      		at org.nuxeo.ecm.core.repository.RepositoryService.doInitRepositories(RepositoryService.java:143)
      		at org.nuxeo.runtime.transaction.TransactionHelper.lambda$runInTransaction$5(TransactionHelper.java:587)
      		at org.nuxeo.runtime.transaction.TransactionHelper.runInTransaction(TransactionHelper.java:607)
      		at org.nuxeo.runtime.transaction.TransactionHelper.runInTransaction(TransactionHelper.java:587)
      		at org.nuxeo.ecm.core.repository.RepositoryService.initRepositories(RepositoryService.java:100)
      		at org.nuxeo.ecm.core.test.CoreFeature.initializeSession(CoreFeature.java:321)
      		at org.nuxeo.ecm.core.test.CoreFeature.beforeSetup(CoreFeature.java:218)
      		at org.nuxeo.runtime.test.runner.FeaturesRunner.lambda$beforeSetup$7(FeaturesRunner.java:200)
      		at org.nuxeo.runtime.test.runner.FeaturesLoader.apply(FeaturesLoader.java:117)
      		... 43 more
      	Caused by: org.postgresql.util.PSQLException: ERROR: deadlock detected
        Detail: Process 21378 waits for ShareLock on transaction 214539; blocked by process 21379.
      Process 21379 waits for ShareLock on transaction 214538; blocked by process 21378.
        Hint: See server log for query details.
        Where: while deleting tuple (11,27) in relation "fulltext"
      SQL statement "DELETE FROM ONLY "public"."fulltext" WHERE $1::pg_catalog.text OPERATOR(pg_catalog.=) "id"::pg_catalog.text"
      		at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2505)
      		at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2241)
      		at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:310)
      		at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:447)
      		at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:368)
      		at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:158)
      		at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:124)
      		at org.tranql.connector.jdbc.PreparedStatementHandle.executeUpdate(PreparedStatementHandle.java:186)
      		at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.deleteRowsDirect(JDBCRowMapper.java:825)
      		... 82 more
      Sortie standard
      2020-04-27 23:08:55,985 [main] WARN  [TransientStorageComponent] Missing configuration for default transient store, using in-memory
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ataillefer Antoine Taillefer
                Reporter:
                ataillefer Antoine Taillefer
                Participants:
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: