Found that we are getting heap space problem from the JSch code. Here is
the stack trace. 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

        at com.jcraft.jsch.Buffer.getString(Buffer.java:167)

        at com.jcraft.jsch.Session.read(Session.java:889)

        at
com.jcraft.jsch.UserAuthPassword.start(UserAuthPassword.java:86)

        at com.jcraft.jsch.Session.connect(Session.java:419)

This Problem is happening rarely and also for some specific SSH Servers.
I have looked at the Jsch source code and found that getString() is
allocating a buffer of size found from getInt(). For these specific
servers, getInt() value obtained has to be too large to cause it
OutOfMemoryError. I dont have much resources/lab connection to further
debug with the servers having this problem with a modified source code. 

Is it known issue? Any suggestiions/hints on how to resolve/fix the
issue?    Does upgrade to latest Jsch will fix it?

Thanks

Here is the code that I believe is causing the issue:

Buffer.java

public byte[] getString() {

int i=getInt();

byte[] foo=new byte[i];                     // This is the line causing
the issue

getByte(foo, 0, i);

return foo;

}

public int getInt(){

int foo = getShort();

foo = ((foo<<16)&0xffff0000) | (getShort()&0xffff);

return foo;

}

int getShort() {

int foo = getByte();

foo = ((foo<<8)&0xff00)|(getByte()&0xff);

return foo;

}

public int getByte() {

return (buffer[s++]&0xff);           

}

------------------------------------------------------------------------------

_______________________________________________
JSch-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jsch-users

Reply via email to