Staying tuned :-) > On 5 Jun 2017, at 13:59, Chris Gamache <cgama...@gmail.com> wrote: > > Hi Siegfried, > > I have implemented the executor watchdogs and shutdown hooks. I will know if > our efforts have been fruitful when we make our first restart which I'm sure > will be soon. I promise I'll write back and let you know how it goes. > > Thank you vary much for checking in with me! > >> On Jun 5, 2017, at 11:45 AM, Siegfried Goeschl >> <siegfried.goes...@it20one.com> wrote: >> >> Hi Chris, >> >> any new findings from your side? >> >> Thanks in advance, >> >> Siegfried Goeschl >> >>> On 28 May 2017, at 21:41, Siegfried Goeschl <siegfried.goes...@it20one.com> >>> wrote: >>> >>> Hi Chris, >>> >>> there are couple of things to consider >>> >>> * You are using a PumpStreamHander but the STDERR is not consumed. Each >>> process has an internal buffer (size depends on the OS) and when the buffer >>> is full any write to STDERR is blocked >>> * That could happen if the process being executed actually writes some >>> error messages :-) >>> * Are you 100% sure that the processes will terminate? See ExecuteWatchdog >>> * You might habe a look at ProcessDestroyer to cleanup during shutdown >>> >>> Thanks in advance, >>> >>> Siegfried Goeschl >>> >>> >>>> On 27 May 2017, at 14:27, Chris Gamache <cgama...@gmail.com> wrote: >>>> >>>> Hi all, >>>> >>>> I'm using org.apache.commons:commons-exec:1.3 on Java 8. >>>> >>>> I'm having an issue where my Tomcat server is bleeding out hundreds of >>>> threads and all of the memory in the form of Executors that I'm running but >>>> don't seem to be closing down ... When the server finally grinds to a halt >>>> I have to restart. When I do it looks like this at shutdown time: >>>> >>>> <snip> >>>> >>>> 27-May-2017 07:56:21.631 WARNING [localhost-startStop-11] >>>> org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The >>>> web application [ROOT##000252] appears to have started a thread named [Exec >>>> Default Executor] but has failed to stop it. This is very likely to create >>>> a memory leak. Stack trace of thread: >>>> java.lang.Object.wait(Native Method) >>>> java.lang.Object.wait(Object.java:502) >>>> java.lang.UNIXProcess.waitFor(UNIXProcess.java:396) >>>> org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:364) >>>> org.apache.commons.exec.DefaultExecutor.access$200(DefaultExecutor.java:48) >>>> org.apache.commons.exec.DefaultExecutor$1.run(DefaultExecutor.java:200) >>>> java.lang.Thread.run(Thread.java:745) >>>> >>>> 27-May-2017 07:56:21.633 WARNING [localhost-startStop-11] >>>> org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The >>>> web application [ROOT##000252] appears to have started a thread named [Exec >>>> Stream Pumper] but has failed to stop it. This is very likely to create a >>>> memory leak. Stack trace of thread: >>>> java.io.FileInputStream.readBytes(Native Method) >>>> java.io.FileInputStream.read(FileInputStream.java:255) >>>> java.io.BufferedInputStream.fill(BufferedInputStream.java:246) >>>> java.io.BufferedInputStream.read1(BufferedInputStream.java:286) >>>> java.io.BufferedInputStream.read(BufferedInputStream.java:345) >>>> java.io.FilterInputStream.read(FilterInputStream.java:107) >>>> org.apache.commons.exec.StreamPumper.run(StreamPumper.java:107) >>>> java.lang.Thread.run(Thread.java:745) >>>> >>>> </snip> >>>> >>>> And my thread dump is a mile long. >>>> >>>> I am certainly willing to concede I'm Doing It Wrong(tm) ... Here's the >>>> relevant code. It is called from a regular method in a regular class, >>>> nothing fancy: >>>> >>>> CommandLine cmdLine = CommandLine.parse(command.toString()); >>>> DefaultExecutor executor = new DefaultExecutor(); >>>> PumpStreamHandler esh = new PumpStreamHandler(os,null,is); >>>> executor.setStreamHandler(esh); >>>> executor.execute(cmdLine); >>>> >>>> `is` and `os` are passed in on the constructor. Their opens and closes are >>>> managed well and cleaned up on the outside of this class... >>>> Are there further steps I'm missing to ensure the threads I'm creating are >>>> getting shut down properly and the resources they are using are being >>>> returned? >>>> >>>> Any help is much appreciated. >>> >>
--------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org