Skip to Content
14
Former Member
Feb 28, 2017 at 01:21 PM

Cluster caching issue - YNoSuchEntityException

428 Views

We end up with many occurrences of JaloObjectNoLongerValidException and YNoSuchEntityException in cluster environment. I've tried following test case in our test environment with 2 nodes (hybris version is 5.4.0.9).

  1. On node1 create stockLevel for productCode='TEST_INVALIDATION' via HAC impex Import

  2. On node2 run flex query to get pk of created stockLevel

  3. On both nodes open the stock level using /hmc/hybris?open=...

  4. On node1 remove stockLevel via HAC impex Import

  5. On node1 trying to open stock level using /hmc/hybris?open=...

  6. On node2 trying to open stock level using /hmc/hybris?open=...

Result shows some issue with cache state on node2. In step5 (node1 HMC check) I end up with a popup indicating an issue and the page with text "The edited object was deleted" (proper handling of the issue). On the other hand on node2 I end up with error page and stacktrace with JaloObjectNoLongerValidException from de.hybris.platform.jalo.Item:696. Same error I get when retrying the HTTP request few hours later. And the scenario is consistent, retrying couple of times I always end up with the same behaviour. I've also tried to check behaviour of query cache using groovy script with query from point 2 from the scenario above, including check of jdbc log. There I see proper behaviour, query cache is properly used and the query is flushed when the table is modified (step 4) and this is properly propagated to the other node, so I expect cluster broadcast works properly (using UDPBroadcastMethod).

Any idea what is the reason and how to fix it? We end up with many stacktraces with YNoSuchEntityException being either a cause or even an uncaught exception (jalo.Item:683) when trying to deal with the basket which was deleted by other node during order creation.