FYI, I can reproduce it and create KARAF-3415[1] to track it, and I'm on it
[1]https://issues.apache.org/jira/browse/KARAF-3415 ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat On 2014-12-11, at 下午10:54, Paul Spencer wrote: > JB, > Have you been able to reproduce the issue? > > Paul Spencer > > > On Dec 9, 2014, at 2:30 PM, Jean-Baptiste Onofré <[email protected]> wrote: > >> Thanks Paul, >> >> I gonna investigate this issue. >> >> Regards >> JB >> >> On 12/09/2014 08:23 PM, Paul Spencer wrote: >>> JB, >>> One way to reproduce this issue: >>> - Start Karaf with bin/karaf >>> - Dump the Heap Memory with a tool like jmap >>> - Open a second command shell and execute the following command several >>> times: >>> $KARAF_HOME/bin/client -u karat instance:list >>> - Dump the Heap Memory with a tool like jmap into a second output file >>> - Compare the two files with the Eclipse Memory Analyzer >>> >>> Paul Spencer >>> >>> >>> On Dec 9, 2014, at 12:52 PM, Jean-Baptiste Onofré <[email protected]> wrote: >>> >>>> Can you try to session.close(false) just in case after the waitFor on the >>>> channel ? >>>> >>>> Regards >>>> JB >>>> >>>> On 12/09/2014 06:46 PM, Paul Spencer wrote: >>>>> I have a test case that connects to a Karaf 3.0.2 server via SSH to >>>>> reset the environment prior to making WebService calls to the server. >>>>> After upgrading from Karaf 2.3.4 I started noticing >>>>> "java.lang.OutOfMemoryError: Java heap space” errors. In looking around >>>>> I noticed 60,000+ >>>>> org.apache.karaf.shell.security.impl.SecuredCommandProcessorImpl objects >>>>> in the HeapDump when the Karaf server had only run a few rounds of >>>>> testing. >>>>> >>>>> 1) Although I have searched without finding a definitive answer, Is this >>>>> a known issue? >>>>> >>>>> 2) I am using the default Karaf 3.0.2 installation with cxf-jaxbws and >>>>> some custom bundles. In addition to the attached screen image from the >>>>> Eclipse Memory Analyzer, what additional information should I provided? >>>>> >>>>> *** >>>>> * Code to programmatically connect to Karaf via ssh and issue reset >>>>> commands. >>>>> *** >>>>> String host = “localhost”; >>>>> int port = 8101; >>>>> String user = "karaf"; >>>>> String password = "karaf"; >>>>> >>>>> SshClient client = null; >>>>> String line = null; >>>>> try { >>>>> client = SshClient.setUpDefaultClient(); >>>>> client.start(); >>>>> ConnectFuture future = client.connect(user, host, port); >>>>> future.await(); >>>>> ClientSession session = future.getSession(); >>>>> session.addPasswordIdentity(password); >>>>> session.auth().verify(); >>>>> ClientChannel channel = session.createExecChannel(command); >>>>> InputStream is = new FileInputStream("/dev/null"); >>>>> PipedInputStream pi = new PipedInputStream(); >>>>> PipedOutputStream po = new PipedOutputStream(pi); >>>>> InputStreamReader isr = new InputStreamReader(pi); >>>>> LineNumberReader lr = new LineNumberReader(isr); >>>>> channel.setIn(is); >>>>> channel.setOut(po); >>>>> channel.setErr(System.err); >>>>> channel.open(); >>>>> channel.waitFor(ClientChannel.CLOSED, 0); >>>>> line = lr.readLine(); >>>>> >>>>> lr.close(); >>>>> is.close(); >>>>> } catch (InterruptedException e) { >>>>> e.printStackTrace(); >>>>> throw e; >>>>> } catch (IOException e) { >>>>> e.printStackTrace(); >>>>> throw e; >>>>> } catch (Exception e) { >>>>> e.printStackTrace(); >>>>> throw e; >>>>> } finally { >>>>> client.stop(); >>>>> } >>>>> >>>>> >>>>> Paul Spencer >>>>> >>>> >>>> -- >>>> Jean-Baptiste Onofré >>>> [email protected] >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com >>> >> >> -- >> Jean-Baptiste Onofré >> [email protected] >> http://blog.nanthrax.net >> Talend - http://www.talend.com >
