Replies: 1 comment 1 reply
-
Although this has nothing to do with Spring Boot, I still confirm that we have a problem in Spring Integration around this Apache MINA SFTP client usage. According to the
Converting this to issue to fix respectively. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
When we upgraded out application to Spring boot 3 we started getting issues like this:
Caused by: org.apache.sshd.common.io.WritePendingException: A write operation is already pending; cannot write 21 bytes
at org.apache.sshd.common.channel.ChannelAsyncOutputStream.writeBuffer(ChannelAsyncOutputStream.java:102)
at org.apache.sshd.sftp.client.impl.DefaultSftpClient.send(DefaultSftpClient.java:299)
at org.apache.sshd.sftp.client.impl.AbstractSftpClient.checkHandle(AbstractSftpClient.java:230)
at org.apache.sshd.sftp.client.impl.AbstractSftpClient.openDir(AbstractSftpClient.java:829)
at org.apache.sshd.sftp.client.impl.SftpDirEntryIterator.(SftpDirEntryIterator.java:60)
at org.apache.sshd.sftp.client.impl.SftpIterableDirEntry.iterator(SftpIterableDirEntry.java:64)
at org.apache.sshd.sftp.client.impl.SftpIterableDirEntry.iterator(SftpIterableDirEntry.java:34)
at java.base/java.lang.Iterable.spliterator(Iterable.java:101)
at org.springframework.integration.sftp.session.SftpSession.doList(SftpSession.java:103)
at org.springframework.integration.sftp.session.SftpSession.list(SftpSession.java:69)
at org.springframework.integration.sftp.session.SftpSession.list(SftpSession.java:52)
at org.springframework.integration.file.remote.session.CachingSessionFactory$CachedSession.list(CachingSessionFactory.java:227)
at org.springframework.integration.file.remote.RemoteFileTemplate.lambda$list$5(RemoteFileTemplate.java:422)
at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:452)
... 18 common frames omitted
We found out that issues is when you call RemoteFileTemplate.list method concurrently. Since ChannelAsyncOutputStream.writeBuffer cannot be caller concurrently.
Before upgrading to SB3 we had no issues like this.
So my question is, is this a bug in new implementation in SB3 using apache mina SSHD or is this expected behaviour and we should not call this method from different threads?
Beta Was this translation helpful? Give feedback.
All reactions