Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-13130

SoftIndexFileStore index update concurrency issue

    XMLWordPrintable

Details

    Description

      With the cache config

      <distributed-cache name="api-general-filestore-without-expiration" owners="2" segments="30" mode="SYNC" remote-timeout="25000" start="EAGER">
               <persistence passivation="true">
                  <file-store max-entries="1000000" path="${infinispan.server.data.path}/api-general-filestore-without-expiration" shared="false" preload="false" fetch-state="true" purge="true"/>
               </persistence>
            </distributed-cache>
      

      Using the client

            ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.addServer()
                  .host("127.0.0.1");
            builder.security().authentication()
                  .username("admin")
                  .password("admin");
            RemoteCacheManager remoteCacheManager = new RemoteCacheManager(builder.build());
      
            RemoteCache remoteCache = remoteCacheManager.getCache("api-general-filestore-without-expiration");
            for (int i = 0; i < 100; i++) {
               remoteCache.put("foo-" + i, "bar-" + i);
            }
      

      The server returns

      2021-06-28 11:02:41,483 INFO  (main) [org.jboss.threads] JBoss Threads version 2.3.3.Final
      2021-06-28 11:02:41,566 WARN  (main) [org.infinispan.encoding.impl.StorageConfigurationManager] ISPN000599: Configuration for cache 'api-general-filestore-without-expiration' does not define the encoding for keys or values. If you use operations that require data conversion or queries, you should configure the cache with a specific MediaType for keys or values.
      2021-06-28 11:02:41,880 INFO  (main) [org.infinispan.CONTAINER] ISPN000104: Using EmbeddedTransactionManager
      2021-06-28 11:02:42,195 INFO  (main) [org.infinispan.server.core.RequestTracer] OpenTracing integration is disabled
      2021-06-28 11:02:42,280 INFO  (ForkJoinPool.commonPool-worker-3) [org.infinispan.SERVER] ISPN080018: Started connector HotRod (internal)
      2021-06-28 11:02:42,388 INFO  (main) [org.infinispan.SERVER] ISPN080018: Started connector REST (internal)
      2021-06-28 11:02:42,520 INFO  (main) [org.infinispan.SERVER] ISPN080004: Connector SINGLE_PORT (default) listening on 127.0.0.1:11222
      2021-06-28 11:02:42,521 INFO  (main) [org.infinispan.SERVER] ISPN080034: Server 'dlovison-mac-16194' listening on http://127.0.0.1:11222
      2021-06-28 11:02:42,548 INFO  (main) [org.infinispan.SERVER] ISPN080001: Infinispan Server 13.0.0-SNAPSHOT started in 6317ms
      2021-06-28 11:02:57,978 WARN  (non-blocking-thread--p2-t6) [org.infinispan.CONTAINER] ISPN000214: Unable to remove entry under WrappedByteArray{bytes=\J06\f\o\o\-\3\2... (8 bytes), hashCode=-1927385149} from cache store after activation java.lang.NullPointerException: The CompletionStage terminated with null.
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:67)
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:47)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:90)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:81)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
      	at org.infinispan.util.concurrent.NonBlockingManagerImpl.lambda$complete$0(NonBlockingManagerImpl.java:44)
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      
      2021-06-28 11:02:58,065 WARN  (non-blocking-thread--p2-t7) [org.infinispan.CONTAINER] ISPN000214: Unable to remove entry under WrappedByteArray{bytes=\J06\f\o\o\-\5\7... (8 bytes), hashCode=-1927385082} from cache store after activation java.lang.NullPointerException: The CompletionStage terminated with null.
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:67)
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:47)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:90)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:81)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
      	at org.infinispan.util.concurrent.NonBlockingManagerImpl.lambda$complete$0(NonBlockingManagerImpl.java:44)
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      
      2021-06-28 11:02:58,111 WARN  (non-blocking-thread--p2-t7) [org.infinispan.CONTAINER] ISPN000214: Unable to remove entry under WrappedByteArray{bytes=\J06\f\o\o\-\7\3... (8 bytes), hashCode=-1927385024} from cache store after activation java.lang.NullPointerException: The CompletionStage terminated with null.
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:67)
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:47)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:90)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:81)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
      	at org.infinispan.util.concurrent.NonBlockingManagerImpl.lambda$complete$0(NonBlockingManagerImpl.java:44)
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      
      2021-06-28 11:02:58,152 WARN  (non-blocking-thread--p2-t7) [org.infinispan.CONTAINER] ISPN000214: Unable to remove entry under WrappedByteArray{bytes=\J06\f\o\o\-\8\8... (8 bytes), hashCode=-1927384988} from cache store after activation java.lang.NullPointerException: The CompletionStage terminated with null.
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:67)
      	at io.reactivex.rxjava3.internal.jdk8.SingleFromCompletionStage$CompletionStageHandler.accept(SingleFromCompletionStage.java:47)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:90)
      	at io.reactivex.rxjava3.internal.jdk8.FlowableFromCompletionStage$BiConsumerAtomicReference.accept(FlowableFromCompletionStage.java:81)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
      	at org.infinispan.util.concurrent.NonBlockingManagerImpl.lambda$complete$0(NonBlockingManagerImpl.java:44)
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      
      
      

      Attachments

        Activity

          People

            wburns@redhat.com Will Burns
            dlovison@redhat.com Diego Lovison
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: