[
https://issues.apache.org/jira/browse/IGNITE-14868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Daschinsky updated IGNITE-14868:
-------------------------------------
Description:
Description of attached reproducer.
# Start 2 server nodes
# Start cache on the first server node (simulate processing of thin client
request)
# Start tx on the second server node after starting cache on the first node
returns (using {{CyclicBarrier}} for example.Assert that cache context exists.
# Get cache instance by name inside tx block using
{{org.apache.ignite.Ignite#cache}} (That is the way the
{{org.apache.ignite.internal.processors.platform.client.ClientRequestHandler}}
works
# Repeat until failure occurs
{code}
Failure in thread: Thread [id=135, name=tx-thread-2]
class org.apache.ignite.IgniteException: Cannot start/stop cache within lock or
transaction [cacheNames=tx_cache, operation=dynamicStartCache]
at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.publicJCache(GridCacheProcessor.java:4517)
at org.apache.ignite.internal.IgniteKernal.cache(IgniteKernal.java:3194)
{code}
Actually, PME finished at this time and I'd expect that the cache 's context
should be already created
{code}
[2021-06-10 10:39:34,072][INFO
][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridCacheProcessor] Finish proxy
initialization, cacheName=tx_cache,
localNodeId=4cce5a9d-c6a8-44df-936d-f902d4100001
[2021-06-10 10:39:34,073][INFO
][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridDhtPartitionsExchangeFuture]
Completed partition exchange
[2021-06-10 10:39:34,075][INFO
][exchange-worker-#98%cache.StartTxOnDifferentNodeTest1%][GridCachePartitionExchangeManager]
Skipping rebalancing (nothing scheduled) [top=AffinityTopologyVersion
[topVer=2, minorTopVer=4], force=false, evt=DISCOVERY_CUSTOM_EVT,
node=284f7bcf-4956-40c2-9df5-de8cac600000]
Failure in thread: Thread [id=135, name=tx-thread-2]
class org.apache.ignite.IgniteException: Cannot start/stop cache within lock or
transaction [cacheNames=tx_cache, operation=dynamicStartCache]
at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
{code}
was:
Description of attached reproducer.
# Start 2 server nodes
# Start cache on the first server node (simulate processing of thin client
request)
# Start tx on the second server node after starting cache on the first node
returns (using {{CyclicBarrier}} for example. Get cache instance by name
inside tx block using
{{org.apache.ignite.Ignite#cache}} (That is the way the
{{org.apache.ignite.internal.processors.platform.client.ClientRequestHandler}}
works
# Repeat until failure occurs
{code}
Failure in thread: Thread [id=135, name=tx-thread-2]
class org.apache.ignite.IgniteException: Cannot start/stop cache within lock or
transaction [cacheNames=tx_cache, operation=dynamicStartCache]
at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.publicJCache(GridCacheProcessor.java:4517)
at org.apache.ignite.internal.IgniteKernal.cache(IgniteKernal.java:3194)
{code}
Actually, PME finished at this time and I'd expect that the cache 's context
should be already created
{code}
[2021-06-10 10:39:34,072][INFO
][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridCacheProcessor] Finish proxy
initialization, cacheName=tx_cache,
localNodeId=4cce5a9d-c6a8-44df-936d-f902d4100001
[2021-06-10 10:39:34,073][INFO
][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridDhtPartitionsExchangeFuture]
Completed partition exchange
[2021-06-10 10:39:34,075][INFO
][exchange-worker-#98%cache.StartTxOnDifferentNodeTest1%][GridCachePartitionExchangeManager]
Skipping rebalancing (nothing scheduled) [top=AffinityTopologyVersion
[topVer=2, minorTopVer=4], force=false, evt=DISCOVERY_CUSTOM_EVT,
node=284f7bcf-4956-40c2-9df5-de8cac600000]
Failure in thread: Thread [id=135, name=tx-thread-2]
class org.apache.ignite.IgniteException: Cannot start/stop cache within lock or
transaction [cacheNames=tx_cache, operation=dynamicStartCache]
at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
{code}
> Failed to get jCache proxy of already started cache within transaction while
> handling thin client request.
> ----------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-14868
> URL: https://issues.apache.org/jira/browse/IGNITE-14868
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.10
> Reporter: Ivan Daschinsky
> Priority: Major
> Attachments: StartTxOnDifferentNodeTest.java
>
>
> Description of attached reproducer.
> # Start 2 server nodes
> # Start cache on the first server node (simulate processing of thin client
> request)
> # Start tx on the second server node after starting cache on the first node
> returns (using {{CyclicBarrier}} for example.Assert that cache context
> exists.
> # Get cache instance by name inside tx block using
> {{org.apache.ignite.Ignite#cache}} (That is the way the
> {{org.apache.ignite.internal.processors.platform.client.ClientRequestHandler}}
> works
> # Repeat until failure occurs
> {code}
> Failure in thread: Thread [id=135, name=tx-thread-2]
> class org.apache.ignite.IgniteException: Cannot start/stop cache within lock
> or transaction [cacheNames=tx_cache, operation=dynamicStartCache]
> at
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.publicJCache(GridCacheProcessor.java:4517)
> at org.apache.ignite.internal.IgniteKernal.cache(IgniteKernal.java:3194)
> {code}
> Actually, PME finished at this time and I'd expect that the cache 's context
> should be already created
> {code}
> [2021-06-10 10:39:34,072][INFO
> ][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridCacheProcessor] Finish
> proxy initialization, cacheName=tx_cache,
> localNodeId=4cce5a9d-c6a8-44df-936d-f902d4100001
> [2021-06-10 10:39:34,073][INFO
> ][sys-#99%cache.StartTxOnDifferentNodeTest1%][GridDhtPartitionsExchangeFuture]
> Completed partition exchange
> [2021-06-10 10:39:34,075][INFO
> ][exchange-worker-#98%cache.StartTxOnDifferentNodeTest1%][GridCachePartitionExchangeManager]
> Skipping rebalancing (nothing scheduled) [top=AffinityTopologyVersion
> [topVer=2, minorTopVer=4], force=false, evt=DISCOVERY_CUSTOM_EVT,
> node=284f7bcf-4956-40c2-9df5-de8cac600000]
> Failure in thread: Thread [id=135, name=tx-thread-2]
> class org.apache.ignite.IgniteException: Cannot start/stop cache within lock
> or transaction [cacheNames=tx_cache, operation=dynamicStartCache]
> at
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.checkEmptyTransactions(IgniteTxManager.java:2982)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3487)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3431)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)