-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61010/#review181196
-----------------------------------------------------------



Just 2 comments and they are not that important. Feel free to tell me if you 
disagree.

Even without change I think the code is ready to commit.

Thanks for the patch, and the changes!

Peter


itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
Line 123 (original), 124 (patched)
<https://reviews.apache.org/r/61010/#comment256683>

    I might be too pedantic, so feel free to tell me if you do not agree with 
me here :) Honestly!
    
    It might be good to check here the closure of the LogDivertAppenderForTest 
too, so if something changes later we can be sure, that all of the appenders 
are closed.
    
    If might be good to rename the test class to TestOpertionLogging, since 
from now on this will not only test the layout, but the appender closure too.


- Peter Vary


On July 22, 2017, 12:16 a.m., Andrew Sherman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61010/
> -----------------------------------------------------------
> 
> (Updated July 22, 2017, 12:16 a.m.)
> 
> 
> Review request for hive.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Previously HIVE-16061 and HIVE-16400 changed Operation Logging to use the 
> Log4j2
> RoutingAppender to automatically output the log for each query into an
> individual operation log file.  As log4j does not know when a query is 
> finished
> it keeps the OutputStream in the subordinate Appender open even when the query
> completes.  The stream holds a file descriptor and so we leak file 
> descriptors.
> Note that we are already careful to close any streams reading from the 
> operation
> log file.  To fix this we use a technique described in the comments of
> LOG4J2-510 which uses reflection to close the subordinate Appender.  We use 
> this
> to close the per-query subordinate Appenders from both LogDivertAppender and
> LogDivertAppenderForTest.  The test in TestOperationLoggingLayout is extended 
> to
> check that the Appenders are closed when a query completes.
> 
> 
> Diffs
> -----
> 
>   common/src/java/org/apache/hadoop/hive/common/LogUtils.java 
> 83f3af7440253bfbcedbc8b21d745fb71c0d7fb9 
>   
> itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
>  1a8337f574bb753e8c3c48a6b477b17700b05256 
>   ql/src/java/org/apache/hadoop/hive/ql/log/LogDivertAppender.java 
> e697b545984555414e27bafe92d7f22829a22687 
>   ql/src/java/org/apache/hadoop/hive/ql/log/LogDivertAppenderForTest.java 
> 465844d66b92b371f457fda0d885d75fbfce6805 
>   service/src/java/org/apache/hive/service/cli/operation/Operation.java 
> 8d453d5d9153c2ec86c4adc7a68bd3b5dd249743 
> 
> 
> Diff: https://reviews.apache.org/r/61010/diff/2/
> 
> 
> Testing
> -------
> 
> Hand testing to show leak has gone.
> The test in TestOperationLoggingLayout is extended to check that the Appender 
> is closed.
> 
> 
> Thanks,
> 
> Andrew Sherman
> 
>

Reply via email to