Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-13131

Re-enable AbstractDatabasePersistenceWebFailoverTestCase#testGracefulSimpleFailover

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Major
    • 21.0.0.Beta1, 21.0.0.Final
    • 19.0.0.Beta2, 20.0.0.Final, 20.0.1.Final
    • Clustering
    • None

    Description

      The implementation for org.jboss.as.test.clustering.cluster.web.persistence.AbstractDatabasePersistenceWebFailoverTestCase#testGracefulSimpleFailover is now no-op since it fails intermittently.

      The idea is to rework to use external database process since H2's AUTO_SERVER doesn't handle server restarts reliably.

      The test fail manifests as

      java.lang.AssertionError: expected:<200> but was:<500>
      

      and the target/h2/web-sessions.trace.db contains the following:

      2020-02-19 11:43:28 database: opening /Users/rhusar/git/wildfly/testsuite/integration/clustering/target/h2/web-sessions
      org.h2.message.DbException: Error opening database: "Sleep interrupted" [8000-197]
      	at org.h2.message.DbException.get(DbException.java:168)
      	at org.h2.store.FileLock.getExceptionFatal(FileLock.java:428)
      	at org.h2.store.FileLock.sleep(FileLock.java:423)
      	at org.h2.store.FileLock.lockFile(FileLock.java:333)
      	at org.h2.store.FileLock.lock(FileLock.java:108)
      	at org.h2.engine.Database.open(Database.java:674)
      	at org.h2.engine.Database.openDatabase(Database.java:286)
      	at org.h2.engine.Database.<init>(Database.java:280)
      	at org.h2.engine.Engine.openSession(Engine.java:66)
      	at org.h2.engine.Engine.openSession(Engine.java:179)
      	at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
      	at org.h2.engine.Engine.createSession(Engine.java:140)
      	at org.h2.engine.Engine.createSession(Engine.java:28)
      	at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
      	at org.h2.engine.SessionRemote.autoReconnect(SessionRemote.java:518)
      	at org.h2.engine.SessionRemote.removeServer(SessionRemote.java:483)
      	at org.h2.command.CommandRemote.prepare(CommandRemote.java:101)
      	at org.h2.command.CommandRemote.<init>(CommandRemote.java:51)
      	at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:493)
      	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247)
      	at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:76)
      	at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:694)
      	at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.doPrepareStatement(BaseWrapperManagedConnection.java:761)
      	at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.prepareStatement(BaseWrapperManagedConnection.java:747)
      	at org.jboss.jca.adapters.jdbc.WrappedConnection$4.produce(WrappedConnection.java:478)
      	at org.jboss.jca.adapters.jdbc.WrappedConnection$4.produce(WrappedConnection.java:476)
      	at org.jboss.jca.adapters.jdbc.SecurityActions.executeInTccl(SecurityActions.java:97)
      	at org.jboss.jca.adapters.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:476)
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.load(JdbcStringBasedStore.java:351)
      	at org.infinispan.persistence.spi.SegmentedAdvancedLoadWriteStore.load(SegmentedAdvancedLoadWriteStore.java:46)
      	at org.infinispan.persistence.manager.PersistenceManagerImpl.loadFromAllStores(PersistenceManagerImpl.java:642)
      	at org.infinispan.persistence.internal.PersistenceUtil.loadAndCheckExpiration(PersistenceUtil.java:139)
      	at org.infinispan.persistence.internal.PersistenceUtil.lambda$loadAndComputeInDataContainer$0(PersistenceUtil.java:97)
      	at org.infinispan.container.impl.AbstractInternalDataContainer.lambda$compute$3(AbstractInternalDataContainer.java:231)
      	at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
      	at org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:230)
      	at org.infinispan.persistence.internal.PersistenceUtil.loadAndComputeInDataContainer(PersistenceUtil.java:119)
      	at org.infinispan.persistence.internal.PersistenceUtil.loadAndStoreInDataContainer(PersistenceUtil.java:53)
      	at org.infinispan.interceptors.impl.CacheLoaderInterceptor.loadInContext(CacheLoaderInterceptor.java:333)
      	at org.infinispan.interceptors.impl.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:328)
      	at org.infinispan.interceptors.impl.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:195)
      	at org.infinispan.interceptors.impl.CacheLoaderInterceptor.visitGetKeyValueCommand(CacheLoaderInterceptor.java:130)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:98)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitDataReadCommand(EntryWrappingInterceptor.java:204)
      	at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:192)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitGetKeyValueCommand(DDAsyncInterceptor.java:106)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitGetKeyValueCommand(DDAsyncInterceptor.java:106)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitDataReadCommand(PessimisticLockingInterceptor.java:61)
      	at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitGetKeyValueCommand(AbstractLockingInterceptor.java:107)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan.interceptors.impl.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:318)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:183)
      	at org.infinispan.interceptors.impl.BaseStateTransferInterceptor.handleReadCommand(BaseStateTransferInterceptor.java:193)
      	at org.infinispan.interceptors.impl.BaseStateTransferInterceptor.visitGetKeyValueCommand(BaseStateTransferInterceptor.java:168)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:123)
      	at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:90)
      	at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:56)
      	at org.infinispan.interceptors.impl.BatchingInterceptor.handleDefault(BatchingInterceptor.java:69)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitGetKeyValueCommand(DDAsyncInterceptor.java:106)
      	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:39)
      	at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:50)
      	at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:248)
      	at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:527)
      	at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:520)
      	at org.infinispan.cache.impl.AbstractDelegatingCache.get(AbstractDelegatingCache.java:438)
      	at org.infinispan.cache.impl.EncoderCache.get(EncoderCache.java:660)
      	at org.infinispan.cache.impl.AbstractDelegatingCache.get(AbstractDelegatingCache.java:438)
      	at org.wildfly.clustering.web.infinispan.session.InfinispanSessionMetaDataFactory.getValue(InfinispanSessionMetaDataFactory.java:100)
      	at org.wildfly.clustering.web.infinispan.session.InfinispanSessionMetaDataFactory.findValue(InfinispanSessionMetaDataFactory.java:88)
      	at org.wildfly.clustering.web.infinispan.session.InfinispanSessionMetaDataFactory.findValue(InfinispanSessionMetaDataFactory.java:56)
      	at org.wildfly.clustering.web.infinispan.session.SessionExpirationScheduler.schedule(SessionExpirationScheduler.java:61)
      	at org.wildfly.clustering.web.infinispan.session.SessionExpirationScheduler.schedule(SessionExpirationScheduler.java:45)
      	at org.wildfly.clustering.web.infinispan.session.InfinispanSessionManagerFactory$ScheduleExpirationTask.run(InfinispanSessionManagerFactory.java:286)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
      	at org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
      	at java.lang.Thread.run(Thread.java:748)
      	at org.jboss.threads.JBossThread.run(JBossThread.java:485)
      Caused by: org.h2.jdbc.JdbcSQLException: Error opening database: "Sleep interrupted" [8000-197]
      	at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
      	... 93 more
      Caused by: java.lang.InterruptedException: sleep interrupted
      	at java.lang.Thread.sleep(Native Method)
      	at org.h2.store.FileLock.sleep(FileLock.java:421)
      	... 90 more
      
      

      Attachments

        Issue Links

          Activity

            People

              rhn-engineering-rhusar Radoslav Husar
              rhn-engineering-rhusar Radoslav Husar
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: