Dimitris Tsirogiannis has posted comments on this change. Change subject: IMPALA-5259: Add REFRESH FUNCTIONS <db> statement ......................................................................
Patch Set 8: (1 comment) http://gerrit.cloudera.org:8080/#/c/6878/8/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java File fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java: PS8, Line 613: refreshFunctions I don't think this function correctly protects the db against concurrent modifications. Let me give you an example. Client 1 is running a refreshFunctions while Client 2 is calling addFunction on the same database. Let's assume that addFunction is executed sometime between L628 and 637 and adds a new function F1 to the database and HMS. The operation will succeed and the new function will be returned to Client 2. Then the synchronized block (L637- 674) is executed which will assume that F1 has been removed and will delete it from the database. If Client 1 then tries to run a statement that uses F1 an error will be thrown between the function is no longer there. -- To view, visit http://gerrit.cloudera.org:8080/6878 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I3625c88bb51cca833f3293c224d3f0feb00e6e0b Gerrit-PatchSet: 8 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Taras Bobrovytsky <[email protected]> Gerrit-Reviewer: Alex Behm <[email protected]> Gerrit-Reviewer: Bharath Vissapragada <[email protected]> Gerrit-Reviewer: Dimitris Tsirogiannis <[email protected]> Gerrit-Reviewer: Taras Bobrovytsky <[email protected]> Gerrit-HasComments: Yes
