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

user initiated query cancellation should return operation_state = CANCELED_STATE

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: Impala 1.4
    • Fix Version/s: None
    • Component/s: Backend
    • Labels:

      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

              • Assignee:
                bikramjeet.vig Bikramjeet Vig
                Reporter:
                dhecht Dan Hecht
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: