[ 
https://issues.apache.org/jira/browse/IGNITE-6252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333772#comment-16333772
 ] 

Sunny Chan edited comment on IGNITE-6252 at 1/22/18 1:45 AM:
-------------------------------------------------------------

[~irudyak] Jason's patch only address the fact the prepare statement needs to 
be re-initialized but it did not address the fact that the batch will need to 
retry as well. In fact, the unit test provided by Jason Man there is an mistake 
in there:

{{for (int i = 0; i < 10; i++) {}}
 {{    data.add(String.valueOf( i ));}}
 {{}}}
 {{cassandraSession.execute(batchExecutionAssistant, data);}}
 {{........}}
 {{assertEquals(9, batchExecutionAssistant.processedCount());}}

Notice that there are 10 items of data, but the test only asserts that there 
are 9 items being processed. The test should verify for 10 items. With my patch 
this should account for all the items.


was (Author: sunnychanclsa):
[~irudyak] Jason's patch only address the fact the prepare statement needs to 
be re-initialized but it did not address the fact that the batch will need to 
retry as well. In fact, the unit test provided by Jason Man there is an mistake 
in there:

{{for (int i = 0; i < 10; i++) {}}
 {{    data.add(String.valueOf(i));}}
 {{}}}
 {{cassandraSession.execute(batchExecutionAssistant, data);}}
 {{........}}
 {{assertEquals(9, batchExecutionAssistant.processedCount());}}

Notice that there are 10 items of data, but the test only asserts that there 
are 9 items being processed. The test should verify for 10 items. With my patch 
this should account for all the items.

> Cassandra Cache Store Session does not retry if prepare statement failed
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-6252
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6252
>             Project: Ignite
>          Issue Type: Bug
>          Components: cassandra
>    Affects Versions: 2.0, 2.1
>            Reporter: Sunny Chan
>            Assignee: Igor Rudyak
>            Priority: Major
>
> During our testing, we have found that certain warning about prepared 
> statement:
> 2017-08-31 11:27:19.479 
> org.apache.ignite.cache.store.cassandra.CassandraCacheStore 
> flusher-0-#265%xxxx% WARN CassandraCacheStore - Prepared statement cluster 
> error detected, refreshing Cassandra session
> com.datastax.driver.core.exceptions.InvalidQueryException: Tried to execute 
> unknown prepared query : 0xc7647611fd755386ef63478ee7de577b. You may have 
> used a PreparedStatement that was created with another Cluster instance.
> We notice that after this warning occurs some of the data didn't persist 
> properly in cassandra cache. After further examining the Ignite's 
> CassandraSessionImpl code in method 
> execute(BatchExecutionAssistance,Iterable), we found that at around [line 
> 283|https://github.com/apache/ignite/blob/86bd544a557663bce497134f7826be6b24d53330/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java#L283],
>  if the prepare statement fails in the asnyc call, it will not retry the 
> operation as the error is stored in [line 
> 269|https://github.com/apache/ignite/blob/86bd544a557663bce497134f7826be6b24d53330/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java#L269]
>  and cleared in [line 
> 277|https://github.com/apache/ignite/blob/86bd544a557663bce497134f7826be6b24d53330/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java#L277]
>  but it was not checked again after going through the [ResultSetFuture 
> |https://github.com/apache/ignite/blob/86bd544a557663bce497134f7826be6b24d53330/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java#L307].
> I believe in line 307 you should check for error != null such that any 
> failure will be retry.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to