[ https://issues.apache.org/jira/browse/HIVE-7228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pankit Thapar updated HIVE-7228: -------------------------------- Attachment: HIVE-7228.patch Added join() to usages of StreamPrinter > StreamPrinter should be joined to calling thread > ------------------------------------------------- > > Key: HIVE-7228 > URL: https://issues.apache.org/jira/browse/HIVE-7228 > Project: Hive > Issue Type: Bug > Components: CLI > Affects Versions: 0.13.0 > Reporter: Pankit Thapar > Priority: Minor > Attachments: HIVE-7228.patch > > > ISSUE: > StreamPrinter class is used for connecting an input stream (connected to > output) of a process with the output stream of a Session > (CliSessionState/SessionState class) > It acts as a pipe between the two and transfers data from input stream to the > output stream. THE TRANSFER OPERATION RUNS IN A SEPARATE THREAD. > From some of the current usages of this class, I noticed that the calling > threads do not wait for the transfer operation to be completed. That is, the > calling thread does not join the SteamPrinter threads. > The calling thread would move forward thinking that the respective output > stream already has the data needed. But, it is not always the right > assumption since, it might happen that > the StreamPrinter thread did not finish execution by the time it was expected > by the calling thread. > FIX: > To ensure that calling thread waits for the StreamPrinter threads to > complete, StreamPrinter threads are joined to calling thread. > Please note , without the fix, TestCliDriverMethods#testRun failed sometimes > (like 1 in 30 times). This test would not fail with this fix. -- This message was sent by Atlassian JIRA (v6.2#6252)