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

BufferedTupleStream::PrepareForRead() does not handle pin failure correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • Impala 2.3.0, Impala 2.5.0, Impala 2.6.0
    • Impala 2.5.2
    • Backend

    Description

      PrepareForRead() allows callers to use it in two different modes. In one of the modes it does not report pin failures. The code was written assuming that it will have reservations. This can result it hitting a DCHECK or going down some strange code paths:

            bool current_pinned;
            RETURN_IF_ERROR((*it)->Pin(&current_pinned));
            if (!current_pinned) {
              DCHECK(got_buffer != NULL) << "Should have reserved enough blocks";
              *got_buffer = false;
              return Status::OK();
            }
      

      Attachments

        Activity

          People

            tarmstrong Tim Armstrong
            tarmstrong Tim Armstrong
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: