Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-6858

Wait for exchange inside GridReduceQueryExecutor.query which never finishes due to opened transaction

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3
    • 2.4
    • sql
    • None

    Description

      Infinite waiting in loop

              for (int attempt = 0;; attempt++) {
                  if (attempt != 0) {
                      try {
                          Thread.sleep(attempt * 10); // Wait for exchange.
                      }
                      catch (InterruptedException e) {
                          Thread.currentThread().interrupt();
      
                          throw new CacheException("Query was interrupted.", e);
                      }
                  }
      

      because of exchange will wait for partition eviction with opened transaction in a related thread

              at java.lang.Thread.sleep(Native Method)
              at o.a.i.i.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:546)
              at o.a.i.i.processors.query.h2.IgniteH2Indexing$8.iterator(IgniteH2Indexing.java:1236)
              at o.a.i.i.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:95)
      

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ascherbakov Alexey Scherbakov
            ein Alexandr Kuramshin
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment