Hi Paul,
not yet (I was on something else). I will work on it tonight or tomorrow
morning my time. I keep you posted.
Regards
JB
On 12/11/2014 03:54 PM, 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
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com