[ https://issues.apache.org/jira/browse/SSHD-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17250495#comment-17250495 ]
min yun law commented on SSHD-1078: ----------------------------------- test using mina 2.6.0 with sftp with three big files uploading to the same host at the same time, and a 10 loops, look like it pass without issue. look like it fix the issue in 2.6.0 -rw-r--r--. 1 root root 5.2G Dec 16 12:34 p30032947_187000DBRU_Linux-x86-64.zip.sftp -rw-r--r--. 1 root root 8.1G Dec 16 12:37 p30397820_188000GIRU_Linux-x86-64.zip.sftp -rw-r--r--. 1 root root 8.1G Dec 16 12:37 p30032946_187000GIRU_Linux-x86-64.zip.sftp retry count: 0 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 288s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 391s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 391s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 1 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 291s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 403s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 405s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 2 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 292s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 419s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 425s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 3 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 330s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 444s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 444s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 4 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 285s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 399s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 400s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 5 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 331s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 444s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 445s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 6 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 376s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 497s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 497s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* retry count: 7 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 286s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 408s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 409s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 8 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 298s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 409s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 412s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* retry count: 9 Using SFTP for upload.... Upload file p30032947_187000DBRU_Linux-x86-64.zip in 356s *****done for p30032947_187000DBRU_Linux-x86-64.zip************* Upload file p30397820_188000GIRU_Linux-x86-64.zip in 499s *****done for p30397820_188000GIRU_Linux-x86-64.zip************* Upload file p30032946_187000GIRU_Linux-x86-64.zip in 500s *****done for p30032946_187000GIRU_Linux-x86-64.zip************* > SCP/SFTP failed for big file upload > ----------------------------------- > > Key: SSHD-1078 > URL: https://issues.apache.org/jira/browse/SSHD-1078 > Project: MINA SSHD > Issue Type: Bug > Affects Versions: 2.5.1 > Reporter: min yun law > Priority: Major > > Trying to merge product from jsch to mina sshd that keep the same SSH > architecture (lets call SessionPool) which for each remote node, there is > only one session object and limited channels (<=8) for executing commands and > file operations. The SessionPool manages the session/channels for nodes and > make sure only 8 threads(ssh channels) per node that can be run concurrently. > This architecture works for Jsch for many years, but when using mina sshd, > this architecture wont work when with upload big file, we always see > following exception: > {code:java} > java.io.EOFException: Channel is being closed > at > org.apache.sshd.common.channel.AbstractChannel$2.<init>(AbstractChannel.java:794) > at > org.apache.sshd.common.channel.AbstractChannel.writePacket(AbstractChannel.java:792) > at > org.apache.sshd.common.channel.ChannelAsyncOutputStream.doWriteIfPossible(ChannelAsyncOutputStream.java:168) > at > org.apache.sshd.common.channel.ChannelAsyncOutputStream.writePacket(ChannelAsyncOutputStream.java:70) > at > org.apache.sshd.client.subsystem.sftp.impl.DefaultSftpClient.send(DefaultSftpClient.java:292) > at > org.apache.sshd.client.subsystem.sftp.impl.SftpOutputStreamAsync.flush(SftpOutputStreamAsync.java:210) > at > org.apache.sshd.client.subsystem.sftp.impl.SftpOutputStreamAsync.write(SftpOutputStreamAsync.java:141) > {code} > From SSH server log, we see follow error: > {code:java} > Aug 19 15:56:38 xxxx sftp-server[202217]: error: Unknown message 0 > Aug 19 15:56:38 xxxx sftp-server[202217]: error: msg_len 0 < consumed 1 > {code} > other client side exceptions by mina sshd as: > org.apache.sshd.common.channel.WindowClosedException: Already closed: > Window[client/remote](ChannelExec[id=79, recipient=1]-ClientSessionImp > > ---- > After many tries, finally I found that for big file upload/download, I have > to give its own SshClient/ClientSession objects and then there will no such > channel closing exception during file upload. > That means we cannot share the same SshClient and ClientSession object per > remote node to execute commands and file operations, and there may has bug in > ClientSession when handle channels in this situation. > the reason that we like to share the same SshClient/ClientSession for the > same remote node is to manage the session/channels and close them when no > usage, also to reduce the cost to allocate those objects. > > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org For additional commands, e-mail: dev-h...@mina.apache.org