You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Steve Carlin (Jira)" <ji...@apache.org> on 2021/12/02 23:20:00 UTC
[jira] [Created] (IMPALA-11046) When GetTupleIdx fails, it should return INVALID_IDX, not bring down impalad
Steve Carlin created IMPALA-11046:
-------------------------------------
Summary: When GetTupleIdx fails, it should return INVALID_IDX, not bring down impalad
Key: IMPALA-11046
URL: https://issues.apache.org/jira/browse/IMPALA-11046
Project: IMPALA
Issue Type: Improvement
Components: Backend
Reporter: Steve Carlin
The following code exists in runtime/descriptors.cc:
int RowDescriptor::GetTupleIdx(TupleId id) const {
DCHECK_LT(id, tuple_idx_map_.size()) << "RowDescriptor: " << DebugString();
return tuple_idx_map_[id];
}
If the id doesn't exist in the map, it returns INVALID_IDX. However, if the id >= tuple_idx_size, it crashes the server.
I was working on an issue on the frontend where I passed an incorrect index and it failed the query when I passed a bad index in both instances, but it was much preferable not to crash the server and only fail the query. So the proposal here is to get rid of the DCHECK_LT and replace it with a "return INVALID_IDX" when it fails.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)