Joe McDonnell has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/15640 )

Change subject: IMPALA-9571: Fix Impala crash from unexpected boost 
filesystem_error exception
......................................................................

IMPALA-9571: Fix Impala crash from unexpected boost filesystem_error exception

The no-exception signature of boost::filesystem::remove_all() has a
longstanding bug where it can throw an exception even for the
no-exceptions interface. Boost recently added the "noexcept" specifier
to the no-exception signature of remove_all(). When a "noexcept"
function throws an exception, it causes the program to call std::terminate()
which aborts the program. This makes the try/catch block around
remove_all() useless.

As a point fix, this switches FilesystemUtil to use the remove_all()
signature that can throw exceptions. This code already had a try/catch
block around remove_all(), so now it just uses that to get the error
code.

Newer versions of boost (1.63+) fix the underlying problem, so this
code can be removed when we upgrade boost.

Testing:
 - Ran core tests
 - Ran FilesystemUtil backend test

Change-Id: I23016f37401604fc41fc99c0a056439a31333e3f
Reviewed-on: http://gerrit.cloudera.org:8080/15640
Tested-by: Impala Public Jenkins <[email protected]>
Reviewed-by: Csaba Ringhofer <[email protected]>
---
M be/src/util/filesystem-util.cc
1 file changed, 13 insertions(+), 6 deletions(-)

Approvals:
  Impala Public Jenkins: Verified
  Csaba Ringhofer: Looks good to me, approved

--
To view, visit http://gerrit.cloudera.org:8080/15640
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I23016f37401604fc41fc99c0a056439a31333e3f
Gerrit-Change-Number: 15640
Gerrit-PatchSet: 2
Gerrit-Owner: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Csaba Ringhofer <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>

Reply via email to