impala-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Ho (Code Review)" <ger...@cloudera.org>
Subject [Impala-ASF-CR] IMPALA-5246: MemTestClose() should handle Expr's preparation failure
Date Wed, 03 May 2017 19:40:13 GMT
Michael Ho has posted comments on this change.

Change subject: IMPALA-5246: MemTestClose() should handle Expr's preparation failure
......................................................................


Patch Set 5:

(6 comments)

The existing code wasn't quite consistent about checking for null before calling FunctionContextImpl::Free()
(e.g. UdfBuiltins::TruncClose()). The new patch now removes all null check before calling
FunctionContextImpl::Close() and delete. Also set the FunctionContext states to nullptr after
freeing them.

I did a quick audit of all the Close() functions in our built-ins and didn't see any potential
nullptr dereference.

http://gerrit.cloudera.org:8080/#/c/6757/1//COMMIT_MSG
Commit Message:

PS1, Line 10: .
> Put a period here
Done


http://gerrit.cloudera.org:8080/#/c/6757/1/be/src/exprs/case-expr.cc
File be/src/exprs/case-expr.cc:

PS1, Line 82: st<uint8_t*>(case_state));
> I could be wrong, but shouldn't we call
Close() is supposed to be called once per ExprContext so the code is not supposed to be calling
fn_ctx->Free() on the same FunctionContext twice. Moreover, it's not entirely clear to
me Close() is really idempotent (e.g. calling close_fn_() on ScalarFnCall() may have unexpected
side effect).

That said, it still seems like a good practice to set the THREAD_LOCAL_STATE to nullptr after
freeing it. Thanks for the suggestion.


http://gerrit.cloudera.org:8080/#/c/6757/1/be/src/exprs/math-functions-ir.cc
File be/src/exprs/math-functions-ir.cc:

PS1, Line 182: 
> same here
Done


http://gerrit.cloudera.org:8080/#/c/6757/1/be/src/exprs/string-functions-ir.cc
File be/src/exprs/string-functions-ir.cc:

PS1, Line 614: terpret_ca
> same here
Done


http://gerrit.cloudera.org:8080/#/c/6757/1/be/src/exprs/timestamp-functions.cc
File be/src/exprs/timestamp-functions.cc:

PS1, Line 195: 
> same here
Done


http://gerrit.cloudera.org:8080/#/c/6757/1/be/src/exprs/utility-functions.cc
File be/src/exprs/utility-functions.cc:

PS1, Line 59: 
> same here
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Id2c689246ed4f8dd38f104fa35904f3926a7039c
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Michael Ho <kwho@cloudera.com>
Gerrit-Reviewer: Attila Jeges <attilaj@cloudera.com>
Gerrit-Reviewer: Dan Hecht <dhecht@cloudera.com>
Gerrit-Reviewer: Michael Ho <kwho@cloudera.com>
Gerrit-Reviewer: Taras Bobrovytsky <tbobrovytsky@cloudera.com>
Gerrit-HasComments: Yes

Mime
View raw message