Juan Ramos created GEODE-7497:
---------------------------------

             Summary: QueryConfigurationService: Execute CQ Sanity Check Before 
Changing the MethodInvocationAuthorizer
                 Key: GEODE-7497
                 URL: https://issues.apache.org/jira/browse/GEODE-7497
             Project: Geode
          Issue Type: Improvement
          Components: management, querying
            Reporter: Juan Ramos


The {{QueryConfigurationService}} currently updates the configured 
{{MethodInvocationAuthorizer}} without executing any validation regarding the 
currently running {{CQs}} within the member, which could potentially leave 
already running {{CQs}} in a bad state whenever the queries use methods not 
allowed by the new authorizer, without the user knowing about it.
Users trying to modify the currently {{MethodInvocationAuthorizer}} should 
provide a flag in order to determine wether it's okay for the 
{{QueryConfigurationService}} to apply the changes:
* If the flag is {{true}} and there are no running {{CQs}}, change the 
{{MethodInvocationAuthorizer}}.
* If the flag is {{false}} and there are no running {{CQs}}, change the 
{{MethodInvocationAuthorizer}}.
* If the flag is {{true}} and there are {{CQs}} running, change the 
{{MethodInvocationAuthorizer}} and invalidate the internal cache used by 
running {{CQs}}.
* If the flag is {{false}} and there are {{CQs}} running, throw an 
{{Exception}} and don't change the {{MethodInvocationAuthorizer}}.

Add an extra parameter ({{false}} by default) to the {{alter query-service}} 
command so users can set this flag, and update the documentation to clearly 
reflect the differences.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to