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

[RESP] MULTI..EXEC not working with a transactional secure cache

XMLWordPrintable

      We have tests in place for transactional operations. However, our test suite doesn't test with authenticated caches. This leads to a failure to initialize a transaction during the `EXEC` command, which ends with:

      2024-10-31 10:27:17,530 WARN  [o.i.s.r.RespHandler] ISPN013003: Received an unexpected exception. java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "org.infinispan.server.resp.ByteBufPool.acquire(int)" because "alloc" is null
      	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
      	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
      	at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:936)
      	at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911)
      	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
      	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
      	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.lang.Thread.run(Thread.java:1583)
      Caused by: java.lang.NullPointerException: Cannot invoke "org.infinispan.server.resp.ByteBufPool.acquire(int)" because "alloc" is null
      	at org.infinispan.server.resp.serialization.PrimitiveSerializer$SimpleErrorSerializer.accept(PrimitiveSerializer.java:161)
      	at org.infinispan.server.resp.serialization.PrimitiveSerializer$SimpleErrorSerializer.accept(PrimitiveSerializer.java:151)
      	at org.infinispan.server.resp.serialization.Resp3SerializerRegistry.serialize(Resp3SerializerRegistry.java:110)
      	at org.infinispan.server.resp.serialization.Resp3SerializerRegistry.serialize(Resp3SerializerRegistry.java:86)
      	at org.infinispan.server.resp.serialization.Resp3Response.serialize(Resp3Response.java:339)
      	at org.infinispan.server.resp.serialization.Resp3Response.error(Resp3Response.java:271)
      	at org.infinispan.server.resp.serialization.ThrowableSerializer.accept(ThrowableSerializer.java:23)
      	at org.infinispan.server.resp.serialization.ThrowableSerializer.accept(ThrowableSerializer.java:13)
      	at org.infinispan.server.resp.serialization.Resp3SerializerRegistry.serialize(Resp3SerializerRegistry.java:110)
      	at org.infinispan.server.resp.serialization.Resp3SerializerRegistry.serialize(Resp3SerializerRegistry.java:86)
      	at org.infinispan.server.resp.serialization.Resp3Response.serialize(Resp3Response.java:339)
      	at org.infinispan.server.resp.serialization.Resp3Response.error(Resp3Response.java:282)
      	at org.infinispan.server.resp.RespRequestHandler.lambda$stageToReturn$2(RespRequestHandler.java:216)
      	at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
      	... 9 more
      

      We should guarantee that:

      • Our tests are covering these cases;
      • Ensure transactions work just as fine with and without authn.

              rh-ee-jbolina Jose Bolina
              rh-ee-jbolina Jose Bolina
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: