[JBoss JIRA] (ISPN-10473) Interceptor chain is null for hibernate collection caches
by Moritz Becker (Jira)
Moritz Becker created ISPN-10473:
------------------------------------
Summary: Interceptor chain is null for hibernate collection caches
Key: ISPN-10473
URL: https://issues.jboss.org/browse/ISPN-10473
Project: Infinispan
Issue Type: Bug
Affects Versions: 9.4.16.Final
Reporter: Moritz Becker
{noformat}
Caused by: java.lang.NullPointerException
at org.infinispan.functional.impl.AbstractFunctionalMap.invokeAsync(AbstractFunctionalMap.java:127) ~[infinispan-core-9.4.15.Final.jar:9.4.15.Final]
at org.infinispan.functional.impl.ReadWriteMapImpl.eval(ReadWriteMapImpl.java:56) ~[infinispan-core-9.4.15.Final.jar:9.4.15.Final]
at org.infinispan.hibernate.cache.commons.access.NonStrictAccessDelegate.putFromLoad(NonStrictAccessDelegate.java:118) ~[infinispan-hibernate-cache-commons-9.4.15.Final.jar:9.4.15.Final]
at org.infinispan.hibernate.cache.v53.impl.CollectionDataAccessImpl.putFromLoad(CollectionDataAccessImpl.java:30) ~[infinispan-hibernate-cache-v53-9.4.15.Final.jar:9.4.15.Final]
at org.hibernate.engine.loading.internal.CollectionLoadContext.addCollectionToCache(CollectionLoadContext.java:390) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:295) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:223) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:196) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:1198) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1162) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.processResultSet(Loader.java:1010) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.doQuery(Loader.java:948) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:340) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2689) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2672) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2506) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.Loader.list(Loader.java:2501) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:504) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1508) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1537) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1505) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
at org.hibernate.query.Query.getResultList(Query.java:135) ~[hibernate-core-5.3.7.Final-ordami.jar:5.3.7.Final]
{noformat}
This is because the collection cache is defined as simple cache and {{org.infinispan.factories.InterceptorChainFactory#construct}} returns null if {{configuration.simpleCache()}} is true. As far as I can see, this behavior has changed in 10.x, commit 55682f391d0f6e28dd6be4ab780cb9e62a639fbd where {{EmptyAsyncInterceptorChain.INSTANCE}} is returned in this case.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10472) ArrayIndexOutOfBoundsException in BoundedOffHeapDataContainer.removeSegments
by Dan Berindei (Jira)
Dan Berindei created ISPN-10472:
-----------------------------------
Summary: ArrayIndexOutOfBoundsException in BoundedOffHeapDataContainer.removeSegments
Key: ISPN-10472
URL: https://issues.jboss.org/browse/ISPN-10472
Project: Infinispan
Issue Type: Bug
Components: Core, State Transfer
Affects Versions: 9.4.16.Final, 10.0.0.Beta5
Reporter: Dan Berindei
Fix For: 10.0.0.CR1, 9.4.17.Final
When the {{data-segmentation}} feature is disabled, the data container is not segmented, but {{BoundedOffHeapDataContainer.removeSegments}} still uses {{DefaultSegmentedDataContainer.getMapForSegment}} internally, and gets an {{ArrayIndexOutOfBoundsException}}:
{noformat}
09:51:06,887 ERROR [org.infinispan.topology.LocalTopologyManagerImpl] (transport-thread--p4-t3) ISPN000452: Failed to update topology for cache books: java.lang.ArrayIndexOutOfBoundsException: Index 54 out of bounds for length 1
at java.base/java.lang.invoke.VarHandle$1.apply(VarHandle.java:2011)
at java.base/java.lang.invoke.VarHandle$1.apply(VarHandle.java:2008)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:159)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:156)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:62)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.lang.invoke.VarHandleObjects$Array.getVolatile(VarHandleObjects.java:438)
at java.base/java.lang.invoke.VarHandleGuards.guard_LI_L(VarHandleGuards.java:646)
at java.base/java.util.concurrent.atomic.AtomicReferenceArray.get(AtomicReferenceArray.java:100)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.container.impl.DefaultSegmentedDataContainer.getMapForSegment(DefaultSegmentedDataContainer.java:83)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.container.impl.AbstractInternalDataContainer.remove(AbstractInternalDataContainer.java:183)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.container.impl.AbstractInternalDataContainer.remove(AbstractInternalDataContainer.java:206)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.container.impl.InternalDataContainerAdapter.removeSegmentEntries(InternalDataContainerAdapter.java:144)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.container.offheap.BoundedOffHeapDataContainer.removeSegments(BoundedOffHeapDataContainer.java:160)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.statetransfer.StateConsumerImpl.removeStaleData(StateConsumerImpl.java:972)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.statetransfer.StateConsumerImpl.onTopologyUpdate(StateConsumerImpl.java:442)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.statetransfer.StateTransferManagerImpl.doTopologyUpdate(StateTransferManagerImpl.java:200)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.statetransfer.StateTransferManagerImpl.access$000(StateTransferManagerImpl.java:57)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.statetransfer.StateTransferManagerImpl$1.updateConsistentHash(StateTransferManagerImpl.java:113)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.topology.LocalTopologyManagerImpl.doHandleTopologyUpdate(LocalTopologyManagerImpl.java:357)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.topology.LocalTopologyManagerImpl.lambda$handleTopologyUpdate$1(LocalTopologyManagerImpl.java:279)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.executors.LimitedExecutor.runTasks(LimitedExecutor.java:175)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.executors.LimitedExecutor.access$100(LimitedExecutor.java:37)
at org.infinispan.core:jdg-7.3@9.4.15.Final-redhat-00001//org.infinispan.executors.LimitedExecutor$Runner.run(LimitedExecutor.java:227)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
{noformat}
The exception doesn't prevent the state transfer from finishing, but if the segments become owned by the local node again in the future, the cache may return the outdated values that were not removed because of the exception.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10471) Infinispan changes to support Quarkus using LOCAL cache
by Will Burns (Jira)
Will Burns created ISPN-10471:
---------------------------------
Summary: Infinispan changes to support Quarkus using LOCAL cache
Key: ISPN-10471
URL: https://issues.jboss.org/browse/ISPN-10471
Project: Infinispan
Issue Type: Sub-task
Components: Core
Reporter: Will Burns
Assignee: Will Burns
Fix For: 10.0.0.CR1
The Infinispan core will need changes to allow for native caches to work in Quarkus. This JIRA is to handle changes required for just a simple LOCAL cache to work.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10470) Add builders to server-ng
by Gustavo Fernandes (Jira)
Gustavo Fernandes created ISPN-10470:
----------------------------------------
Summary: Add builders to server-ng
Key: ISPN-10470
URL: https://issues.jboss.org/browse/ISPN-10470
Project: Infinispan
Issue Type: Feature Request
Affects Versions: 10.0.0.Beta5
Reporter: Gustavo Fernandes
Assignee: Gustavo Fernandes
Fix For: 10.0.0.CR1
The server-ng instance is built by the XML parser and does not provide builders, attributes and mapping to JSON.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10041) Locking interceptor should check the topology before acquiring locks
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-10041?page=com.atlassian.jira.plugin... ]
Dan Berindei commented on ISPN-10041:
-------------------------------------
Checking for pending transactions is still blocking, the locking interceptors call {{pendingLockManager.awaitPendingTransactionsForKey()}} because {{PendingLockPromise}} doesn't yet have a {{toInvocationStage()}} or {{toCompletionStage()}} method.
> Locking interceptor should check the topology before acquiring locks
> --------------------------------------------------------------------
>
> Key: ISPN-10041
> URL: https://issues.jboss.org/browse/ISPN-10041
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.11.Final, 9.3.6.Final, 9.4.9.Final, 10.0.0.Beta2
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 10.0.0.CR1
>
>
> The distribution interceptors check the command topology is the same as the current topology before sending a command to remote nodes, but the locking interceptors do not have any check.
> On a remote node, this means the inbound invocation handler acquires some locks in topology {{T}}, then the locking interceptor acquires other locks in topology {{T+1}}, and finally the distribution interceptor throws {{OutdatedTopologyException}} and releases the locks. In older versions there is also a potential for blocking a remote executor thread while waiting for the lock, but luckily that is not a problem in 9.4+. It would be more efficient if the locking interceptor was throwing {{OutdatedTopologyException}} instead.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months