impala-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Ho (JIRA)" <>
Subject [jira] [Created] (IMPALA-5102) Handle uncaught exceptions in Impalad
Date Mon, 20 Mar 2017 21:37:42 GMT
Michael Ho created IMPALA-5102:

             Summary: Handle uncaught exceptions in Impalad
                 Key: IMPALA-5102
             Project: IMPALA
          Issue Type: Bug
          Components: Backend
    Affects Versions: Impala 2.9.0
            Reporter: Michael Ho
            Assignee: Joe McDonnell
            Priority: Critical

Impalad uses noexcept API of boost library whenever possible. However, there are certain API
which don't implement the noexcept variant. One example of this is the thread creation interface:

void Thread::StartThread(const ThreadFunctor& functor) {
  DCHECK(thread_manager.get() != nullptr)
      << "Thread created before InitThreading called";
  DCHECK(tid_ == UNINITIALISED_THREAD_ID) << "StartThread called twice";

  Promise<int64_t> thread_started;
      new thread(&Thread::SuperviseThread, name_, category_, functor, &thread_started));

  // TODO: This slows down thread creation although not enormously. To make this faster,
  // consider delaying thread_started.Get() until the first call to tid(), but bear in
  // mind that some coordination is required between SuperviseThread() and this to make
  // sure that the thread is still available to have its tid set.
  tid_ = thread_started.Get();

  VLOG(2) << "Started thread " << tid_ << " - " << category_ <<
":" << name_;

We have been bitten by this uncaught exception in the past such as IMPALA-3104. This kind
of exception is more prone to occur when there are a large number of fragment instances running
in an Impala cluster.

There are other uncaught exceptions in the code. Please update this JIRA as we find more.

This message was sent by Atlassian JIRA

View raw message