[ 
https://issues.apache.org/jira/browse/IGNITE-28348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Petrov updated IGNITE-28348:
------------------------------------
    Description: 
We need to fix flaky DataReplicationOperationsTest. See 
https://ci2.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-2244900484209781876&tab=testDetails
 for more details.

The cause of test failure is the ClientCacheRequest#cachex method which 
searches for the requested cache descriptor and, if present, unconditionally 
obtains corresponding cache proxy.

The cache proxy may not be initialized even if the cache descriptor is present 
(PME caused by cache start is still in progress). In this case IgniteEx#cachex 
returns null causing a NullPointerExeption.

The problem occurs in the test when a thin client connected to node0 starts the 
cach. The createCache method returns, but PME callbacks on node 1 have not yet 
finished. After that the thin client sends cache request to node1 and fails 
with NPE - it is possible due to partitionAwareness/clusterDiscovery features.

We can consider the following ways to fix this issue:
- simply double check the cache existence after both calling 
ClientCacheRequest#cacheDescriptor and IgniteEx#cachex.
- try using the  cache proxy initialization wait mechanism - see 
GridCacheProcessor#awaitInitializeProxy


  was:
We need to fix flaky DataReplicationOperationsTest. See 
https://ci2.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-2244900484209781876&tab=testDetails
 for more details.

The cause of test failure is the ClientCacheRequest#cachex method which 
searches for the requested cache descriptor and, if present, unconditionally 
obtains corresponding cache proxy.

The cache proxy may not be initialized even if the cache descriptor is present 
(PME caused by cache start is still in progress). In this case IgniteEx#cachex 
returns null causing a NullPointerExeption.

The test also facing the problem when node0 starts the cache method. 
createCache method returns but PME callbacks have not finished on the node1. 
The thin client sends cache request to node1 and got NPE - it is possible 
because of partitionAwareness/clusterDiscovery features.

We can consider the following ways to fix this issue:
- simply double check the cache existence after both calling 
ClientCacheRequest#cacheDescriptor and IgniteEx#cachex.
- try using the  cache proxy initialization wait mechanism - see 
GridCacheProcessor#awaitInitializeProxy



> [Thin client] NullPointerException while executing 
> putAllConflict/removeAllConflict requests
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28348
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28348
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mikhail Petrov
>            Assignee: Mikhail Petrov
>            Priority: Major
>              Labels: ise
>             Fix For: 2.19
>
>
> We need to fix flaky DataReplicationOperationsTest. See 
> https://ci2.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-2244900484209781876&tab=testDetails
>  for more details.
> The cause of test failure is the ClientCacheRequest#cachex method which 
> searches for the requested cache descriptor and, if present, unconditionally 
> obtains corresponding cache proxy.
> The cache proxy may not be initialized even if the cache descriptor is 
> present (PME caused by cache start is still in progress). In this case 
> IgniteEx#cachex returns null causing a NullPointerExeption.
> The problem occurs in the test when a thin client connected to node0 starts 
> the cach. The createCache method returns, but PME callbacks on node 1 have 
> not yet finished. After that the thin client sends cache request to node1 and 
> fails with NPE - it is possible due to partitionAwareness/clusterDiscovery 
> features.
> We can consider the following ways to fix this issue:
> - simply double check the cache existence after both calling 
> ClientCacheRequest#cacheDescriptor and IgniteEx#cachex.
> - try using the  cache proxy initialization wait mechanism - see 
> GridCacheProcessor#awaitInitializeProxy



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to