Skip to content

Commit

Permalink
Catch all Parquet errors and report them to the client (#1188)
Browse files Browse the repository at this point in the history
* Catch all Parquet errors and report them to the client
In the initial Parquet error handling code, the only errors that
were being reported were errors that came from status codes of
calls to the Parquet API, but all errors in the C++ code went
unhandled and would result in a server crash.

This PR wraps all the C++ functions in a try/catch to catch all
errors to be reported back to the client rather than crashing the
server. This approach seems to align with the philosophy of
"The server should never crash, errors should just be reported to
the client".

Additionally, a bug was identified with throwing errors in `forall`
loops within a function, which would cause a try/catch wrapping
the throwing function to not catch the resulting `TaskErrors` error
throw, but a workaround for that is to wrap `forall` loops in a
try/catch which just throws the error, which then allows the
overarching try/catch to catch and report the error, where previously
it would crash the server.

* Add unsupported type error message to getType function

* Remove the ARROWUNDEFINED variable and add some throws
  • Loading branch information
bmcdonald3 authored Mar 9, 2022
1 parent 5bc43e0 commit fc3b4f8
Show file tree
Hide file tree
Showing 3 changed files with 346 additions and 295 deletions.
Loading

0 comments on commit fc3b4f8

Please sign in to comment.