]
Gustavo Fernandes updated ISPN-12646:
-------------------------------------
Git Pull Request:
IllegalArgumentException when doing Rolling Upgrades on transactional
caches
----------------------------------------------------------------------------
Key: ISPN-12646
URL:
https://issues.redhat.com/browse/ISPN-12646
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 11.0.9.Final
Reporter: Gustavo Fernandes
Assignee: Gustavo Fernandes
Priority: Major
{noformat}
Caused by: java.lang.IllegalArgumentException: Cannot create a transactional context
without a valid Transaction instance.
at
org.infinispan.context.impl.TransactionalInvocationContextFactory.createInvocationContext(TransactionalInvocationContextFactory.java:63)
[...]
at org.infinispan.cache.impl.DecoratedCache.putIfAbsent(DecoratedCache.java:688)
at
org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.putIfAbsent(AbstractDelegatingAdvancedCache.java:328)
at org.infinispan.cache.impl.EncoderCache.putIfAbsent(EncoderCache.java:450)
at
org.infinispan.persistence.remote.upgrade.MigrationTask.lambda$migrateEntriesWithMetadata$0(MigrationTask.java:128)
at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1771)
{noformat}
The migration component that obtains data from the remote cache does not use transactions
to write to the destination cache, and since it runs on a separate thread, it cannot see
any ongoing transaction and thus fail to write to the cache.