Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-1262

user initiated query cancellation should return operation_state = CANCELED_STATE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • Impala 1.4
    • None
    • Backend

    Description

      I've been told that if the user cancels the query, our intention is to not set query_state to EXCEPTION. (Is that the desired behavior?) Adding a test case to test_cancellation.py as follows, shows that this is not the current behavior (at least not in all circumstances).

      --- a/tests/query_test/test_cancellation.py
      +++ b/tests/query_test/test_cancellation.py
      @@ -102,6 +102,7 @@ class TestCancellation(ImpalaTestSuite):
             sleep(vector.get_value('cancel_delay'))
             assert self.client.get_state(handle) != self.client.QUERY_STATES['EXCEPTION']
             cancel_result = self.client.cancel(handle)
      +      assert self.client.get_state(handle) != self.client.QUERY_STATES['EXCEPTION']
             assert cancel_result.status_code == 0,\
                 'Unexpected status code from cancel request: %s' % cancel_result
             thread.join()
      

      One example of how this can happen is if the cancel happens while the wait thread is still in WaitInternal, then WaitInternal will return Status::CANCELLED, and UpdateQueryStatus indiscriminately sets query_state_ to EXCEPTION if !ok(). But, I don't think that side of the execution can distinguish between user initiated cancel and error initiated cancel. Probably, QueryExecState::Cancel needs to remember which kind of cancellation it was so that the cancelled side can do the right thing.

      We don't have a general workaround.

      Attachments

        Issue Links

          Activity

            People

              bikramjeet.vig Bikramjeet Vig
              dhecht Daniel Hecht
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: