----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/34603/#review90193 -----------------------------------------------------------
Add to my never ending comments on this patch :) I was facing similar issues, so I have some more comments. exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java (line 97) <https://reviews.apache.org/r/34603/#comment143201> What about the race condition that you fixed in DRILL-3061? I thought that had to do with recentlyFinishedFragments. Does this also require synchronization? exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java (line 91) <https://reviews.apache.org/r/34603/#comment143200> The FragmentData objects referenced from this map are not thread-safe. With your changes, I feel like we can cook up cases (however rare) where two RPC threads could modify the same fragment data object in #updateFragmentState through #fragmentDone, because you've created other paths to #fragmentDone. exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java (line 218) <https://reviews.apache.org/r/34603/#comment143196> fragmentDataSet is never empty. May be this? if (fragmentDataSet.size() == finishedFragments.get()) - Sudheesh Katkam On June 30, 2015, 10:37 p.m., abdelhakim deneche wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/34603/ > ----------------------------------------------------------- > > (Updated June 30, 2015, 10:37 p.m.) > > > Review request for drill, Jacques Nadeau, Jason Altekruse, and Sudheesh > Katkam. > > > Bugs: DRILL-3167 > https://issues.apache.org/jira/browse/DRILL-3167 > > > Repository: drill-git > > > Description > ------- > > - In case of a failure the Foreman will cancel all fragments and move to a > FAILING state until all fragments are terminated > - QueryManager.cancelExecutingFragments() returns false if no fragment > available > - Web UI still displays FAILED when Foreman state is FAILING > > > Diffs > ----- > > > exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java > 3e461ef > > exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java > 6656bf6 > > exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileWrapper.java > dd26a76 > > exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/ControlMessageHandler.java > 9f302a2 > > exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java > 716fb66 > > exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java > 9318233 > exec/java-exec/src/main/resources/rest/profile/list.ftl cf92ede > exec/java-exec/src/main/resources/rest/profile/profile.ftl 46cdc83 > protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java > e76d748 > protocol/src/main/java/org/apache/drill/exec/proto/beans/QueryResult.java > 474e330 > protocol/src/main/protobuf/UserBitShared.proto 0451fd2 > > Diff: https://reviews.apache.org/r/34603/diff/ > > > Testing > ------- > > unit tests are passing along with functional and tpch100 > > > Thanks, > > abdelhakim deneche > >