Zoltán Borók-Nagy created IMPALA-11105:
------------------------------------------

             Summary: Impala crashes in PhjBuilder::Close() when Prepare() fails
                 Key: IMPALA-11105
                 URL: https://issues.apache.org/jira/browse/IMPALA-11105
             Project: IMPALA
          Issue Type: Bug
          Components: Backend
            Reporter: Zoltán Borók-Nagy


Currently PhjBuilder::Close() looks like the following:
{noformat}
void PhjBuilder::Close(RuntimeState* state) {
  if (closed_) return;
  CloseAndDeletePartitions(nullptr);
  if (ht_ctx_ != nullptr) {
    ht_ctx_->StatsCountersAdd(ht_stats_profile_.get());
    ht_ctx_->Close(state);
    ht_ctx_.reset();
  }
...
{noformat}

When 'ht_ctx_' is not null, we invoke 
ht_ctx_->StatsCountersAdd(ht_stats_profile_.get());

But in Prepare() we create 'ht_ctx_' first, then after a couple operations 
which might fail we create 'ht_stats_profile_'.

This means if an operation fails in Prepare(), between the creation of 
'ht_ctx_' and 'ht_stast_profile_', then later we'll get a SEGFAULT in Close().

The solution could be to initialize the counters first, like we do in 
grouping-aggregators.cc.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to