[
https://issues.apache.org/jira/browse/SSHD-1262?focusedWorklogId=770596&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-770596
]
ASF GitHub Bot logged work on SSHD-1262:
----------------------------------------
Author: ASF GitHub Bot
Created on: 15/May/22 17:24
Start Date: 15/May/22 17:24
Worklog Time Spent: 10m
Work Description: lgoldstein commented on PR #223:
URL: https://github.com/apache/mina-sshd/pull/223#issuecomment-1126982558
> I was not able to determine whether pending peer packets are flushed
before EOF is sent and the channel is closed.
>> They should be. On a graceful close, the channel first closes the
ChannelAsyncOutputStream gracefully. The stream's close future is fulfilled
only once the last write has been completed. Sending the EOF happens in a
future listener on the stream's close future, so it goes out after the stream
is closed, and it's done not via the stream but directly via the SSH session.
Great
Issue Time Tracking
-------------------
Worklog Id: (was: 770596)
Time Spent: 50m (was: 40m)
> Unhandled SSH_MSG_CHANNEL_WINDOW_ADJUST leeds to SocketTimeoutException
> -----------------------------------------------------------------------
>
> Key: SSHD-1262
> URL: https://issues.apache.org/jira/browse/SSHD-1262
> Project: MINA SSHD
> Issue Type: Bug
> Affects Versions: 2.7.0, 2.8.0
> Reporter: Stefan Maute
> Assignee: Thomas Wolf
> Priority: Major
> Labels: mina, sshd
> Attachments: failing-pf-trace-logs.txt
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Wanted to open a local port forwarding to an SSH server and afterwards
> connect to MQTT server over the SSh tunnel. During the MQTT connection
> attempt I encountered a SocketTimeoutException in the logs (StackTrace below).
> What I could see in the logs is that the server is sending an initial window
> size of 0 and afterwards the _waitForCondition_ method is throwing the
> SocketTimeoutException .
> After analyzing the logs I maybe have an idea what is going on here. My
> assumption is that there is some deadlock in case the initial window size is
> 0 and the SSH_MSG_CHANNEL_WINDOW_ADJUST isn't handled properly.
> I have attached the whole log file. Lines of interest are from 169 to 229.
> Tested with 2.7.0 and 2.8.0.
>
> {code:java}
> WARN org.apache.sshd.common.forward.DefaultForwarder -
> exceptionCaught(Nio2Session[local=/127.0.0.1:44259, remote=/127.0.0.1:60188])
> SocketTimeoutException:
> waitForCondition(Window[client/remote](TcpipClientChannel[id=0,
> recipient=0]-ClientSessionImpl[Admin@/x.xxx.xx.x:xxxx])) timeout exceeded:
> PT30S java.net.SocketTimeoutException:
> waitForCondition(Window[client/remote](TcpipClientChannel[id=0,
> recipient=0]-ClientSessionImpl[Admin@/x.xxx.xx.x:xxxx])) timeout exceeded:
> PT30S at
> org.apache.sshd.common.channel.Window.waitForCondition(Window.java:332)
> at org.apache.sshd.common.channel.Window.waitForSpace(Window.java:286) at
> org.apache.sshd.common.channel.ChannelOutputStream.write(ChannelOutputStream.java:154)
> at
> org.apache.sshd.client.channel.ClientChannelPendingMessagesQueue.writeMessage(ClientChannelPendingMessagesQueue.java:174)
> at
> org.apache.sshd.client.channel.ClientChannelPendingMessagesQueue.flushPendingQueue(ClientChannelPendingMessagesQueue.java:221)
> at
> org.apache.sshd.client.channel.ClientChannelPendingMessagesQueue.operationComplete(ClientChannelPendingMessagesQueue.java:206)
> at
> org.apache.sshd.client.channel.ClientChannelPendingMessagesQueue.operationComplete(ClientChannelPendingMessagesQueue.java:51)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:159)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:215)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:112)
> at
> org.apache.sshd.client.future.DefaultOpenFuture.setOpened(DefaultOpenFuture.java:68)
> at
> org.apache.sshd.client.channel.AbstractClientChannel.handleOpenSuccess(AbstractClientChannel.java:360)
> at
> org.apache.sshd.common.session.helpers.AbstractConnectionService.channelOpenConfirmation(AbstractConnectionService.java:545)
> at
> org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:456)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:503)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:429)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1466)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:389)
> at
> org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:64)
> at
> org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:359)
> at
> org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:336)
> at
> org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:333)
> at
> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
> at
> java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
> at
> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
> at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129) at
> java.base/sun.nio.ch.Invoker$2.run(Invoker.java:221) at
> java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> at java.base/java.lang.Thread.run(Thread.java:833) {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]