[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-12-01 Thread Andras Piros (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705796#comment-16705796
 ] 

Andras Piros commented on OOZIE-3382:
-

Thanks for the new patch [~asalamon74]! +1

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch, OOZIE-3382-04.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-30 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705086#comment-16705086
 ] 

Hadoop QA commented on OOZIE-3382:
--


Testing JIRA OOZIE-3382

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:green}+1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:green}+1{color} the patch adds/modifies 6 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
.{color:orange}WARNING{color}: the current HEAD has 100 Javadoc warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:green}+1{color} There are no new bugs found in total.
. {color:green}+1{color} There are no new bugs found in [sharelib/hive2].
. {color:green}+1{color} There are no new bugs found in [sharelib/spark].
. {color:green}+1{color} There are no new bugs found in [sharelib/oozie].
. {color:green}+1{color} There are no new bugs found in [sharelib/pig].
. {color:green}+1{color} There are no new bugs found in [sharelib/streaming].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive].
. {color:green}+1{color} There are no new bugs found in [sharelib/distcp].
. {color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
. {color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
. {color:green}+1{color} There are no new bugs found in [sharelib/git].
. {color:green}+1{color} There are no new bugs found in [client].
. {color:green}+1{color} There are no new bugs found in [docs].
. {color:green}+1{color} There are no new bugs found in [tools].
. {color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
. {color:green}+1{color} There are no new bugs found in [server].
. {color:green}+1{color} There are no new bugs found in [webapp].
. {color:green}+1{color} There are no new bugs found in [examples].
. {color:green}+1{color} There are no new bugs found in [core].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:green}+1 TESTS{color}
.Tests run: 3096
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 


{color:green}*+1 Overall result, good!, no -1s*{color}

{color:red}. There is at least one warning, please check{color}

The full output of the test-patch run is available at

. https://builds.apache.org/job/PreCommit-OOZIE-Build/934/



> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch, OOZIE-3382-04.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and 

[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-30 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16704961#comment-16704961
 ] 

Hadoop QA commented on OOZIE-3382:
--

PreCommit-OOZIE-Build started


> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch, OOZIE-3382-04.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-26 Thread Andras Piros (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16698887#comment-16698887
 ] 

Andras Piros commented on OOZIE-3382:
-

[~asalamon74] thanks for the works, it's a very neat improvement to SSH action.

In general, a nice approach and pretty good test coverage. Most of my comments 
on RB point towards better readability / maintainability.

I'd extend the test coverage by adding:
* slow processes that drain up till several seconds
* processes that don't drain on a linear scale, but after a while streams get 
paused and then resumed w/ random pause times
* drain a couple of processes at a time in different threads, and see whether 
all of those finish correctly
* randomly failing while draining some parallel processes

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-26 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16698712#comment-16698712
 ] 

Andras Salamon commented on OOZIE-3382:
---

Created a separate Jira to handle {{ShellMain}} modification.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-25 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16698589#comment-16698589
 ] 

Andras Salamon commented on OOZIE-3382:
---

The latest patch does not modify ShellMain, because of the {{Process#waitFor}} 
usage ( OOZIE-3359 ). I'll check the code if it's possible to modify the code 
and eliminate {{Process#waitFor}} at the same time.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-23 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16697357#comment-16697357
 ] 

Hadoop QA commented on OOZIE-3382:
--


Testing JIRA OOZIE-3382

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:green}+1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:green}+1{color} the patch adds/modifies 1 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
.{color:orange}WARNING{color}: the current HEAD has 100 Javadoc warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:green}+1{color} There are no new bugs found in total.
. {color:green}+1{color} There are no new bugs found in [webapp].
. {color:green}+1{color} There are no new bugs found in [server].
. {color:green}+1{color} There are no new bugs found in [sharelib/git].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive2].
. {color:green}+1{color} There are no new bugs found in [sharelib/pig].
. {color:green}+1{color} There are no new bugs found in [sharelib/oozie].
. {color:green}+1{color} There are no new bugs found in [sharelib/streaming].
. {color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
. {color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
. {color:green}+1{color} There are no new bugs found in [sharelib/distcp].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive].
. {color:green}+1{color} There are no new bugs found in [sharelib/spark].
. {color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
. {color:green}+1{color} There are no new bugs found in [core].
. {color:green}+1{color} There are no new bugs found in [client].
. {color:green}+1{color} There are no new bugs found in [docs].
. {color:green}+1{color} There are no new bugs found in [examples].
. {color:green}+1{color} There are no new bugs found in [tools].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:green}+1 TESTS{color}
.Tests run: 3081
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 


{color:green}*+1 Overall result, good!, no -1s*{color}

{color:red}. There is at least one warning, please check{color}

The full output of the test-patch run is available at

. https://builds.apache.org/job/PreCommit-OOZIE-Build/922/



> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draini

[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-23 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16697256#comment-16697256
 ] 

Hadoop QA commented on OOZIE-3382:
--

PreCommit-OOZIE-Build started


> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-23 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16697201#comment-16697201
 ] 

Andras Salamon commented on OOZIE-3382:
---

The new patch fixes the flakiness.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch, 
> OOZIE-3382-03.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-23 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16696595#comment-16696595
 ] 

Andras Salamon commented on OOZIE-3382:
---

[~kmarton] Thanks for checking.

I prefer this approach because it does not require the introduction of a new 
parameter:

* It would be possible to misconfigure the new parameter. For instance 
specifying a large value for {{oozie.servlet.CallbackServlet.max.data.len}} and 
low value for the new parameter. Or specifying large value for the new 
parameter.
* I don't find the new parameter intuitive. It requires to understand the inner 
details of the Ssh action's buffer draining.

I've opened a JIRA fo the {{TestSSh*}} tests: OOZIE-3391

I'll check the flakiness of the test.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-23 Thread Julia Kinga Marton (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16696539#comment-16696539
 ] 

Julia Kinga Marton commented on OOZIE-3382:
---

Thank you [~asalamon74] for creating this patch! Can you please check the cause 
of the flakiness of the test?

+1 from my side for this approach

Can you please summarise here as well in a comment your ideas about the other 
two solutions (making it configurable via a parameter; having the buffer size 
half of the oozie.servlet.CallbackServlet.max.data.len).

As we discussed, it would be nice to make some cleanup around the 
TestSshActionExecutor as well, and include it in our Junit runs.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693448#comment-16693448
 ] 

Andras Salamon commented on OOZIE-3382:
---

Looks like {{TestBufferDrainer}} is flaky.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693430#comment-16693430
 ] 

Hadoop QA commented on OOZIE-3382:
--


Testing JIRA OOZIE-3382

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:green}+1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:green}+1{color} the patch adds/modifies 1 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
.{color:orange}WARNING{color}: the current HEAD has 100 Javadoc warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:green}+1{color} There are no new bugs found in total.
. {color:green}+1{color} There are no new bugs found in [sharelib/hive2].
. {color:green}+1{color} There are no new bugs found in [sharelib/spark].
. {color:green}+1{color} There are no new bugs found in [sharelib/oozie].
. {color:green}+1{color} There are no new bugs found in [sharelib/pig].
. {color:green}+1{color} There are no new bugs found in [sharelib/streaming].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive].
. {color:green}+1{color} There are no new bugs found in [sharelib/distcp].
. {color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
. {color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
. {color:green}+1{color} There are no new bugs found in [sharelib/git].
. {color:green}+1{color} There are no new bugs found in [client].
. {color:green}+1{color} There are no new bugs found in [docs].
. {color:green}+1{color} There are no new bugs found in [tools].
. {color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
. {color:green}+1{color} There are no new bugs found in [server].
. {color:green}+1{color} There are no new bugs found in [webapp].
. {color:green}+1{color} There are no new bugs found in [examples].
. {color:green}+1{color} There are no new bugs found in [core].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:red}-1 TESTS{color}
.Tests run: 3076
.Tests failed : 1
.Tests in error   : 0
.Tests timed out  : 0

{color:red}-1{color} [ERROR] There are [1] test failures in [core]. Listing 
only the first [5] ones
testDrainBuffersFakeCatSlowWrite:org.apache.oozie.util.TestBufferDrainer

Check console output for the full list of errors/failures
.{color:orange}Tests failed at first run:{color}
TestPurgeXCommand#testPurgeBundleWithCoordChildWithWFChild3MoreThanLimit
.For the complete list of flaky tests, see TEST-SUMMARY-FULL files.
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 


{color:red}*-1 Overall result, please check the reported -1(s)*{color}

{color:red}. There is at least one warning, please check{color}

The full output of the test-patch run is available at

. https://builds.apache.org/job/PreCommit-OOZIE-Build/920/



> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple tim

[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693308#comment-16693308
 ] 

Hadoop QA commented on OOZIE-3382:
--

PreCommit-OOZIE-Build started


> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693300#comment-16693300
 ] 

Andras Salamon commented on OOZIE-3382:
---

The new version of the patch fixes the RAT warning.

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch, OOZIE-3382-02.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693295#comment-16693295
 ] 

Andras Salamon commented on OOZIE-3382:
---

testRetryConsoleUrlForked error is unrelated, see OOZIE-3384

> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693222#comment-16693222
 ] 

Hadoop QA commented on OOZIE-3382:
--


Testing JIRA OOZIE-3382

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:green}+1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:green}+1{color} the patch adds/modifies 1 testcase(s)
{color:red}-1 RAT{color}
.{color:red}-1{color} the patch seems to introduce 1 new RAT warning(s)
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
.{color:orange}WARNING{color}: the current HEAD has 100 Javadoc warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:green}+1{color} There are no new bugs found in total.
. {color:green}+1{color} There are no new bugs found in [sharelib/hive2].
. {color:green}+1{color} There are no new bugs found in [sharelib/spark].
. {color:green}+1{color} There are no new bugs found in [sharelib/oozie].
. {color:green}+1{color} There are no new bugs found in [sharelib/pig].
. {color:green}+1{color} There are no new bugs found in [sharelib/streaming].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive].
. {color:green}+1{color} There are no new bugs found in [sharelib/distcp].
. {color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
. {color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
. {color:green}+1{color} There are no new bugs found in [sharelib/git].
. {color:green}+1{color} There are no new bugs found in [client].
. {color:green}+1{color} There are no new bugs found in [docs].
. {color:green}+1{color} There are no new bugs found in [tools].
. {color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
. {color:green}+1{color} There are no new bugs found in [server].
. {color:green}+1{color} There are no new bugs found in [webapp].
. {color:green}+1{color} There are no new bugs found in [examples].
. {color:green}+1{color} There are no new bugs found in [core].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:red}-1 TESTS{color}
.Tests run: 3076
.Tests failed : 2
.Tests in error   : 0
.Tests timed out  : 0

{color:red}-1{color} [ERROR] There are [2] test failures in [core]. Listing 
only the first [5] ones
testRetryConsoleUrlForked:org.apache.oozie.command.wf.TestWorkflowActionRetryInfoXCommand

Check console output for the full list of errors/failures
.{color:orange}Tests failed at first run:{color}
TestPurgeXCommand#testPurgeBundleWithCoordChildWithWFChild3MoreThanLimit
TestPurgeXCommand#testPurgeBundleWithCoordChildWithWFChildWithSubWF1
TestPurgeXCommand#testPurgeCoordWithWFChild2
.For the complete list of flaky tests, see TEST-SUMMARY-FULL files.
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 


{color:red}*-1 Overall result, please check the reported -1(s)*{color}

{color:red}. There is at least one warning, please check{color}

The full output of the test-patch run is available at

. https://builds.apache.org/job/PreCommit-OOZIE-Build/919/



> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.

[jira] [Commented] (OOZIE-3382) Optimize SshActionExecutor's drainBuffers method

2018-11-20 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693098#comment-16693098
 ] 

Hadoop QA commented on OOZIE-3382:
--

PreCommit-OOZIE-Build started


> Optimize SshActionExecutor's drainBuffers method
> 
>
> Key: OOZIE-3382
> URL: https://issues.apache.org/jira/browse/OOZIE-3382
> Project: Oozie
>  Issue Type: Improvement
>Reporter: Andras Salamon
>Assignee: Andras Salamon
>Priority: Major
> Attachments: OOZIE-3382-01.patch
>
>
> OOZIE-3354 improved {{SshActionExecutor}} to avoid {{Process#waitFor()}} 
> blocks and modified the {{drainBuffers}} method to keep draining the standard 
> output (and standard error) continuously.
> Right now the speed of the drain is hardwired. As long as the process is 
> running the method only reads 1024 bytes in each cycle (half a second) which 
> can take very long time if we want to drain several megabytes (for instance 
> {{oozie.servlet.CallbackServlet.max.data.len}} is increased).
> Let's optimize the draining.
> We can either read 1024 bytes multiple times in each cycle (as long as there 
> are data in the buffer), or we can increase the value of the buffer size 
> (1024). 
> In the latter case the default of the buffer size could be half of the 
> {{oozie.servlet.CallbackServlet.max.data.len}} value, but we also need an 
> additional property to specify the buffer size (to avoid memory problems 
> because of using a very big buffer). We can keep 1024 as a minimum buffer 
> size. 
> It would be also useful to refactor the code and put the buffer draining into 
> a separate class and create unit tests for the class. Using this class in 
> {{ShellMain}} to avoid code duplication would also be very useful, but we 
> have to fix OOZIE-3359 first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)