Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
Impala 2.3.0, Impala 2.5.0, Impala 2.6.0
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(¤t_pinned)); if (!current_pinned) { DCHECK(got_buffer != NULL) << "Should have reserved enough blocks"; *got_buffer = false; return Status::OK(); }