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

Edward Ribeiro updated CASSANDRA-8693:
--------------------------------------
    Description: 
QueryProcessor holds a reference to {{internalStatements}}, a map for prepared 
statements used internally.

Those commands don't mix with the ones created by the user, but the problem is 
that if a KS/CF is dropped and then recreated {{internalStatements}} entries 
will point to invalid PreparedStatements (old cf_id) so any operation on those 
statements will fail thereafter. In fact, as of today, this map is never 
actually cleaned, no matter what.

This problem is similar to the ones addressed by 
https://issues.apache.org/jira/browse/CASSANDRA-8652 and 
https://issues.apache.org/jira/browse/CASSANDRA-7566, so those issues provide 
any further context. 

I am attaching a patch to this issue. 

  was:
QueryProcessor holds a reference to {{internalStatements}}, a map for prepared 
statements used internally.

Those commands don't mix with the ones created by the user, but the problem is 
that if a KS/CF is dropped and then recreated {{internalStatements}} entries 
will point to invalid PreparedStatements (old cf_id) so any operation on those 
statements will fail therefore. In fact, as of today, this map is never 
actually cleaned no matter what.

This problem is similar to the ones addressed by 
https://issues.apache.org/jira/browse/CASSANDRA-8652 and 
https://issues.apache.org/jira/browse/CASSANDRA-7566, so those issues provide 
any further context. 

I am attaching a patch to this issue. 


> QueryProcessor never removes internal statements from its cache
> ---------------------------------------------------------------
>
>                 Key: CASSANDRA-8693
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8693
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Edward Ribeiro
>            Assignee: Edward Ribeiro
>              Labels: cql3
>             Fix For: 2.1.2
>
>         Attachments: qp-internal.patch
>
>
> QueryProcessor holds a reference to {{internalStatements}}, a map for 
> prepared statements used internally.
> Those commands don't mix with the ones created by the user, but the problem 
> is that if a KS/CF is dropped and then recreated {{internalStatements}} 
> entries will point to invalid PreparedStatements (old cf_id) so any operation 
> on those statements will fail thereafter. In fact, as of today, this map is 
> never actually cleaned, no matter what.
> This problem is similar to the ones addressed by 
> https://issues.apache.org/jira/browse/CASSANDRA-8652 and 
> https://issues.apache.org/jira/browse/CASSANDRA-7566, so those issues provide 
> any further context. 
> I am attaching a patch to this issue. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to