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

Ilya Shishkov updated IGNITE-25614:
-----------------------------------
    Description: 
{{CacheStoreListener#onSessionEnd}} is invoked during transaction commit. 
In case if we commit state to external database and then some extension occur 
in {{#onSessionEnd}}, then transaction will be rolled back in Ignite, but will 
not in external database.

*Reproducer:*  [^CacheStoreFailureInSessionListenerTest.patch]

As you can see in attached reproducer, it does not matter, if put fails on 
primary or backup node.
Also, {{#onSessionEnd}} is invoked once on initiating node.
Logic of commit to external database is the same as in [1].

Also, during cache operation we can unexpected {{IgniteException}} instead of 
{{CacheException}}.


# 
https://github.com/apache/ignite/blob/946360aa5438d8fabf0a7df4082ffb83346503ea/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreSessionListener.java#L125

  was:
{{CacheStoreListener#onSessionEnd}} is invoked during transaction commit. 
In case if we commit state to external database and then some extension occur 
in {{#onSessionEnd}}, then transaction will be rolled back in Ignite, but will 
not in external database.

*Reproducer:*  [^CacheStoreFailureInSessionListenerTest.patch]

As you can see in attached reproducer, it does not matter, if put fails on 
primary or backup node.
Also, {{#onSessionEnd}} is invoked once on initiating node.
Logic of commit to external database is the same as in [1].

Also, during cache operation we can unexpected {{IgniteException}} instead of 
{{CacheException}}


# 
https://github.com/apache/ignite/blob/946360aa5438d8fabf0a7df4082ffb83346503ea/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreSessionListener.java#L125


> Exception in CacheStoreListener#onSessionEnd can cause inconsistency of 
> CacheStore
> ----------------------------------------------------------------------------------
>
>                 Key: IGNITE-25614
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25614
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ilya Shishkov
>            Priority: Major
>              Labels: ise
>         Attachments: CacheStoreSessionListenerFailureTest.patch
>
>
> {{CacheStoreListener#onSessionEnd}} is invoked during transaction commit. 
> In case if we commit state to external database and then some extension occur 
> in {{#onSessionEnd}}, then transaction will be rolled back in Ignite, but 
> will not in external database.
> *Reproducer:*  [^CacheStoreFailureInSessionListenerTest.patch]
> As you can see in attached reproducer, it does not matter, if put fails on 
> primary or backup node.
> Also, {{#onSessionEnd}} is invoked once on initiating node.
> Logic of commit to external database is the same as in [1].
> Also, during cache operation we can unexpected {{IgniteException}} instead of 
> {{CacheException}}.
> # 
> https://github.com/apache/ignite/blob/946360aa5438d8fabf0a7df4082ffb83346503ea/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreSessionListener.java#L125



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

Reply via email to