----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/71845/ -----------------------------------------------------------
Review request for hive, Laszlo Bodor, prasanthj, and Slim Bouguerra. Bugs: HIVE-22502 https://issues.apache.org/jira/browse/HIVE-22502 Repository: hive-git Description ------- A ConcurrentModificationException was thrown from the main loop of TriggerValidatorRunnable. The ConcurrentModificationException happened because an other thread (from TezSessionPoolManager) updated the sessions list while the TriggerValidatorRunnable was iterating over it. The sessions list is updated by TezSessionPoolManager when opening or closing a session. These operations are synchronized but the iteration in TriggerValidatorRunnable is not. The TriggerValidatorRunnable is executed frequently (it is scheduled at a 500ms rate by default) therefore I was reluctant put the whole iteration into a synchronized block. Opening and closing a session happens not so often so I decided to make a copy of the sessions list before passing it to the TriggerValidatorRunnable. Let me know if you think otherwise. Diffs ----- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java 7c0a1fe120b Diff: https://reviews.apache.org/r/71845/diff/1/ Testing ------- qtest Thanks, Attila Magyar