You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (JIRA)" <ji...@apache.org> on 2017/08/23 15:02:00 UTC

[jira] [Resolved] (IMPALA-5823) SET_DENY_RESERVATION_PROBABILITY debug action is not always effective

     [ https://issues.apache.org/jira/browse/IMPALA-5823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Armstrong resolved IMPALA-5823.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.10.0



IMPALA-5823: fix SET_DENY_RESERVATION_PROBABILITY

Sometimes the client is not open when the debug action fires at the
start of Open() or Prepare(). In that case we should set the
probability when the client is opened later.

This caused one of the large row tests to start failing with a "failed
to repartition" error in the aggregation. The error is a false positive
caused by two distinct keys hashing to the same partition. Removing the
check allows the query to succeed because the keys hash to different
partitions in the next round of repartitioning.

If we repeatedly get unlucky and have collisions, the query will still
fail when it reaches MAX_PARTITION_DEPTH.

Testing:
Ran TestSpilling in a loop for a couple of hours, including the
exhaustive-only tests.

Change-Id: Ib26b697544d6c2312a8e1fe91b0cf8c0917e5603
Reviewed-on: http://gerrit.cloudera.org:8080/7771
Reviewed-by: Tim Armstrong <ta...@cloudera.com>
Tested-by: Impala Public Jenkins

> SET_DENY_RESERVATION_PROBABILITY debug action is not always effective
> ---------------------------------------------------------------------
>
>                 Key: IMPALA-5823
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5823
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Backend
>    Affects Versions: Impala 2.10.0
>            Reporter: Tim Armstrong
>            Assignee: Tim Armstrong
>            Priority: Critical
>             Fix For: Impala 2.10.0
>
>
> The debug action is only effective if the client is already registered. In many cases this is not true because buffer pool client registration was deferred until later in Open() as part of the IMPALA-4862 changes.
> {code}
>     if (buffer_pool_client_.is_registered()) {
>       // Parse [0.0, 1.0] probability.
>       StringParser::ParseResult parse_result;
>       double probability = StringParser::StringToFloat<double>(
>           debug_action_param_.c_str(), debug_action_param_.size(), &parse_result);
>       if (parse_result != StringParser::PARSE_SUCCESS || probability < 0.0
>           || probability > 1.0) {
>         return Status(Substitute(
>             "Invalid SET_DENY_RESERVATION_PROBABILITY param: '$0'", debug_action_param_));
>       }
>       buffer_pool_client_.SetDebugDenyIncreaseReservation(probability);
>     }
> {code}
> This means that we didn't have quite as much test coverage as we thought we had.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)