Erick Lichtas
2013-10-03 21:20:10 UTC
The latest versions of JSCH 0.1.49 and 0.1.50 are having issues transferring larger files (I'm testing with ~400MB) to ProFTPD server, however, the older version 0.1.44 that I've tested works (and has been working) just fine for quite some time. I've included the configuration information of ProFTPd below. The transfer of the file usually hangs anywhere between 10% and 20% of the transfer and is reproducible 100% of the time (for me) using the Sftp.java example class to upload the file using jsch version 1.49 and 1.50. Jsch version 1.44, it works every time.
I have the following setting configured in my proftpd config as recommended by the link below.
SFTPClientMatch ".*JSCH.*" channelWindowSize 1GB
https://forums.proftpd.org/smf/index.php?topic=4616.0
Can you please explain what change would have affected this and what adjustments I can make in the short term to get this transfer working?
Waiting Thread
"main" prio=6 tid=0x000000000062c000 nid=0x1ff8 runnable [0x000000000256f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at com.jcraft.jsch.IO.put(IO.java:77)
at com.jcraft.jsch.Session._write(Session.java:1461)
- locked <0x00000000ecd951f0> (a java.lang.Object)
at com.jcraft.jsch.Session.write(Session.java:1424)
at com.jcraft.jsch.ChannelSftp.sendWRITE(ChannelSftp.java:3329)
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:795)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:623)
at JSchTest.main(JSchTest.java:281)
ProFTPd configuration
Compile-time Settings:
Version: 1.3.4d (maint)
Platform: LINUX [Linux 2.6.32-38-generic i686]
Built: Thu Oct 3 2013 11:07:09 CDT
Built With:
configure '--prefix=/usr' '--with-includes=/usr/include/postgresql:/usr/include/mysql:/usr/openssl/include/' '--mandir=/usr/share/man' '--sysconfdir=/etc/proftpd' '--localstatedir=/var/run' '--libexecdir=/usr/lib/proftpd' '--enable-sendfile' '--enable-facl' '--enable-dso' '--enable-autoshadow' '--enable-ctrls' '--with-modules=mod_readme:mod_sftp' '--enable-ipv6' '--enable-nls' '--build' 'i486-linux-gnu' 'build_alias=i486-linux-gnu' 'CFLAGS=-O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS ' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' 'FFLAGS=-g -O2' '--enable-openssl' '--with-libraries=/usr/openssl/lib' '--with-shared=mod_ctrls_admin:mod_ban'
CFLAGS: -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS -Wall
LDFLAGS: -L$(top_srcdir)/lib -Wl,-Bsymbolic-functions -L/usr/openssl/lib
LIBS: -lssl -lcrypto -lssl -lcrypto -L$(top_srcdir)/lib/libcap -lcap -lcrypto -lsupp -lcrypt -ldl -ldl -lz
Files:
Configuration File:
/etc/proftpd/proftpd.conf
Pid File:
/var/run/proftpd.pid
Scoreboard File:
/var/run/proftpd.scoreboard
Header Directory:
/usr/include/proftpd
Shared Module Directory:
/usr/lib/proftpd
Features:
+ Autoshadow support
+ Controls support
- curses support
- Developer support
+ DSO support
+ IPv6 support
+ Largefile support
- Lastlog support
- Memcache support
- ncurses support
+ NLS support
+ OpenSSL support
- PCRE support
+ POSIX ACL support
+ Shadow file support
+ Sendfile support
+ Trace support
Tunable Options:
PR_TUNABLE_BUFFER_SIZE = 1024
PR_TUNABLE_DEFAULT_RCVBUFSZ = 8192
PR_TUNABLE_DEFAULT_SNDBUFSZ = 8192
PR_TUNABLE_GLOBBING_MAX_MATCHES = 100000
PR_TUNABLE_GLOBBING_MAX_RECURSION = 8
PR_TUNABLE_HASH_TABLE_SIZE = 40
PR_TUNABLE_NEW_POOL_SIZE = 512
PR_TUNABLE_SCOREBOARD_BUFFER_SIZE = 80
PR_TUNABLE_SCOREBOARD_SCRUB_TIMER = 30
PR_TUNABLE_SELECT_TIMEOUT = 30
PR_TUNABLE_TIMEOUTIDENT = 10
PR_TUNABLE_TIMEOUTIDLE = 600
PR_TUNABLE_TIMEOUTLINGER = 30
PR_TUNABLE_TIMEOUTLOGIN = 300
PR_TUNABLE_TIMEOUTNOXFER = 300
PR_TUNABLE_TIMEOUTSTALLED = 3600
PR_TUNABLE_XFER_SCOREBOARD_UPDATES = 10
Thanks in advance!
Erick Lichtas
I have the following setting configured in my proftpd config as recommended by the link below.
SFTPClientMatch ".*JSCH.*" channelWindowSize 1GB
https://forums.proftpd.org/smf/index.php?topic=4616.0
Can you please explain what change would have affected this and what adjustments I can make in the short term to get this transfer working?
Waiting Thread
"main" prio=6 tid=0x000000000062c000 nid=0x1ff8 runnable [0x000000000256f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at com.jcraft.jsch.IO.put(IO.java:77)
at com.jcraft.jsch.Session._write(Session.java:1461)
- locked <0x00000000ecd951f0> (a java.lang.Object)
at com.jcraft.jsch.Session.write(Session.java:1424)
at com.jcraft.jsch.ChannelSftp.sendWRITE(ChannelSftp.java:3329)
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:795)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:623)
at JSchTest.main(JSchTest.java:281)
ProFTPd configuration
Compile-time Settings:
Version: 1.3.4d (maint)
Platform: LINUX [Linux 2.6.32-38-generic i686]
Built: Thu Oct 3 2013 11:07:09 CDT
Built With:
configure '--prefix=/usr' '--with-includes=/usr/include/postgresql:/usr/include/mysql:/usr/openssl/include/' '--mandir=/usr/share/man' '--sysconfdir=/etc/proftpd' '--localstatedir=/var/run' '--libexecdir=/usr/lib/proftpd' '--enable-sendfile' '--enable-facl' '--enable-dso' '--enable-autoshadow' '--enable-ctrls' '--with-modules=mod_readme:mod_sftp' '--enable-ipv6' '--enable-nls' '--build' 'i486-linux-gnu' 'build_alias=i486-linux-gnu' 'CFLAGS=-O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS ' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' 'FFLAGS=-g -O2' '--enable-openssl' '--with-libraries=/usr/openssl/lib' '--with-shared=mod_ctrls_admin:mod_ban'
CFLAGS: -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS -Wall
LDFLAGS: -L$(top_srcdir)/lib -Wl,-Bsymbolic-functions -L/usr/openssl/lib
LIBS: -lssl -lcrypto -lssl -lcrypto -L$(top_srcdir)/lib/libcap -lcap -lcrypto -lsupp -lcrypt -ldl -ldl -lz
Files:
Configuration File:
/etc/proftpd/proftpd.conf
Pid File:
/var/run/proftpd.pid
Scoreboard File:
/var/run/proftpd.scoreboard
Header Directory:
/usr/include/proftpd
Shared Module Directory:
/usr/lib/proftpd
Features:
+ Autoshadow support
+ Controls support
- curses support
- Developer support
+ DSO support
+ IPv6 support
+ Largefile support
- Lastlog support
- Memcache support
- ncurses support
+ NLS support
+ OpenSSL support
- PCRE support
+ POSIX ACL support
+ Shadow file support
+ Sendfile support
+ Trace support
Tunable Options:
PR_TUNABLE_BUFFER_SIZE = 1024
PR_TUNABLE_DEFAULT_RCVBUFSZ = 8192
PR_TUNABLE_DEFAULT_SNDBUFSZ = 8192
PR_TUNABLE_GLOBBING_MAX_MATCHES = 100000
PR_TUNABLE_GLOBBING_MAX_RECURSION = 8
PR_TUNABLE_HASH_TABLE_SIZE = 40
PR_TUNABLE_NEW_POOL_SIZE = 512
PR_TUNABLE_SCOREBOARD_BUFFER_SIZE = 80
PR_TUNABLE_SCOREBOARD_SCRUB_TIMER = 30
PR_TUNABLE_SELECT_TIMEOUT = 30
PR_TUNABLE_TIMEOUTIDENT = 10
PR_TUNABLE_TIMEOUTIDLE = 600
PR_TUNABLE_TIMEOUTLINGER = 30
PR_TUNABLE_TIMEOUTLOGIN = 300
PR_TUNABLE_TIMEOUTNOXFER = 300
PR_TUNABLE_TIMEOUTSTALLED = 3600
PR_TUNABLE_XFER_SCOREBOARD_UPDATES = 10
Thanks in advance!
Erick Lichtas