karaf 2.x branch also affected, but the master is OK. Thanks JB btw. ------------- Freeman(Yue) Fang
Red Hat, Inc. FuseSource is now part of Red Hat On 2014-12-16, at 下午4:13, Jean-Baptiste Onofré wrote: > Hi > > I've just seen that Freeman committed a fix for the leak issue. I will double > check but it looks good to me. I would like to check if the other branches > are not affected as well. > > Regards > JB > > > -------- Original message -------- > From: Jean-Baptiste Onofré <[email protected]> > Date:16/12/2014 09:00 (GMT+01:00) > To: [email protected] > Cc: > Subject: Re: 60,000+ > org.apache.karaf.shell.security.impl.SecuredCommandProcessorImpl objects in > the HeapDump. Why? > > Hi > > I have reproduced it yesterday as well. > Thanks for the Jira Freeman, I will try to work on it tonight or tomorrow. > > Regards > JB > > > -------- Original message -------- > From: Freeman Fang <[email protected]> > Date:16/12/2014 08:46 (GMT+01:00) > To: [email protected] > Cc: > Subject: Re: 60,000+ > org.apache.karaf.shell.security.impl.SecuredCommandProcessorImpl objects in > the HeapDump. Why? > > 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 >> >
