[ 
https://issues.apache.org/jira/browse/SSHD-942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16935402#comment-16935402
 ] 

David Ostrovsky edited comment on SSHD-942 at 9/22/19 7:11 PM:
---------------------------------------------------------------

I figured, that there is {{DefaultUnknownChannelReferenceHandler.INSTANCE}} 
that can be used, so that the fix was:
 
{code:java}
diff --git a/java/com/google/gerrit/sshd/SshDaemon.java 
b/java/com/google/gerrit/sshd/SshDaemon.java
index ef356f1687..433e0e92dd 100644
--- a/java/com/google/gerrit/sshd/SshDaemon.java
+++ b/java/com/google/gerrit/sshd/SshDaemon.java
@@ -89,6 +89,7 @@ import org.apache.sshd.common.random.Random;
 import org.apache.sshd.common.random.SingletonRandomFactory;
 import org.apache.sshd.common.session.ConnectionService;
 import org.apache.sshd.common.session.Session;
+import 
org.apache.sshd.common.session.helpers.DefaultUnknownChannelReferenceHandler;
 import org.apache.sshd.common.util.buffer.Buffer;
 import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
 import org.apache.sshd.common.util.net.SshdSocketAddress;
@@ -226,6 +227,7 @@ public class SshDaemon extends SshServer implements 
SshInfo, LifecycleListener {
     initMacs(cfg);
     initSignatures();
     initChannels();
+    initUnknownChannelReferenceHandler();
     initForwarding();
     initFileSystemFactory();
     initSubsystems();
@@ -653,6 +655,10 @@ public class SshDaemon extends SshServer implements 
SshInfo, LifecycleListener {
     setChannelFactories(ServerBuilder.DEFAULT_CHANNEL_FACTORIES);
   }
 
+  private void initUnknownChannelReferenceHandler() {
+    
setUnknownChannelReferenceHandler(DefaultUnknownChannelReferenceHandler.INSTANCE);
+  }
+
   private void initSubsystems() {
     setSubsystemFactories(Collections.<NamedFactory<Command>>emptyList());
   }
{code}

Shouldn't there be a companion default listener to detect client misbehavior, 
that you mentioned in your last comment? 


was (Author: davido2):
I figured, that there is {{DefaultUnknownChannelReferenceHandler.INSTANCE}} 
that cane be used, so that the fix was:
 
{code:java}
diff --git a/java/com/google/gerrit/sshd/SshDaemon.java 
b/java/com/google/gerrit/sshd/SshDaemon.java
index ef356f1687..433e0e92dd 100644
--- a/java/com/google/gerrit/sshd/SshDaemon.java
+++ b/java/com/google/gerrit/sshd/SshDaemon.java
@@ -89,6 +89,7 @@ import org.apache.sshd.common.random.Random;
 import org.apache.sshd.common.random.SingletonRandomFactory;
 import org.apache.sshd.common.session.ConnectionService;
 import org.apache.sshd.common.session.Session;
+import 
org.apache.sshd.common.session.helpers.DefaultUnknownChannelReferenceHandler;
 import org.apache.sshd.common.util.buffer.Buffer;
 import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
 import org.apache.sshd.common.util.net.SshdSocketAddress;
@@ -226,6 +227,7 @@ public class SshDaemon extends SshServer implements 
SshInfo, LifecycleListener {
     initMacs(cfg);
     initSignatures();
     initChannels();
+    initUnknownChannelReferenceHandler();
     initForwarding();
     initFileSystemFactory();
     initSubsystems();
@@ -653,6 +655,10 @@ public class SshDaemon extends SshServer implements 
SshInfo, LifecycleListener {
     setChannelFactories(ServerBuilder.DEFAULT_CHANNEL_FACTORIES);
   }
 
+  private void initUnknownChannelReferenceHandler() {
+    
setUnknownChannelReferenceHandler(DefaultUnknownChannelReferenceHandler.INSTANCE);
+  }
+
   private void initSubsystems() {
     setSubsystemFactories(Collections.<NamedFactory<Command>>emptyList());
   }
{code}

Shouldn't there be a companion default listener to detect client misbehavior, 
that you mentioned in your last comment? 

> SSH session crashes on high latency network
> -------------------------------------------
>
>                 Key: SSHD-942
>                 URL: https://issues.apache.org/jira/browse/SSHD-942
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 1.7.0, 2.0.0, 2.3.0
>            Reporter: David Ostrovsky
>            Assignee: Goldstein Lyor
>            Priority: Major
>
> Gerrit users report problem: [1] with {{git clone/fetch/pull}} operations on 
> high latency network, after upgrading Gerrit to 2.16.x from 2.15.x that 
> effectively means upgrade of SSHD from 1.6.0 to 1.7.0 and to 2.0.0.
> The error on SSHD 2.0.0 (Gerrit 2.16) is:
> {noformat}
> [2019-09-16 10:27:14,256] [sshd-SshServer[24facb47]-nio2-thread-8] WARN 
> org.apache.sshd.server.session.ServerSessionImpl : 
> exceptionCaught(ServerSessionImpl[usexxx@/172.x.x.1:63306])[state=Opened] 
> SshChannelNotFoundException: Received SSH_MSG_CHANNEL_WINDOW_ADJUST on 
> unknown channel 0
> {noformat}
> Note that the attempt to upgrade SSHD in Gerrit to 2.3.0 in this CL: [2], 
> didn't fix the problem:
> {noformat}
> [2019-09-17 14:05:27,923] [sshd-SshDaemon[189c6683](port=22)-nio2-thread-4] 
> WARN org.apache.sshd.server.session.ServerSessionImpl : 
> exceptionCaught(ServerSessionImpl[<username>@/<ip>:55212])[state=Opened] 
> SshChannelNotFoundException: Received SSH_MSG_CHANNEL_WINDOW_ADJUST on 
> unknown channel 3
> [2019-09-17 14:05:27,924] [SSH git-upload-pack <repo> (<username>)] ERROR 
> com.google.gerrit.sshd.BaseCommand : Internal server error (user <username> 
> account 1000190) during git-upload-pack '<repo path>'
> org.apache.sshd.common.channel.WindowClosedException: Already closed: 
> Window[server/remote](ChannelSession[id=2, 
> recipient=6]-ServerSessionImpl[<username>@/<ip>:55212])
>  at org.apache.sshd.common.channel.Window.waitForCondition(Window.java:302)
>  at org.apache.sshd.common.channel.Window.waitForSpace(Window.java:252)
> {noformat}
> Also note, that downgrade to 1.7.0: [3] didn't fix the problem either. Only 
> after downgrade to SSH 1.6.0: [4] the problem disappeared, and only warnings 
> left in the log:
> {noformat}
> [2019-09-18 09:24:52,755] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 12
> [2019-09-18 09:24:52,756] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 13
> [2019-09-18 09:25:02,576] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 15
> [2019-09-18 09:25:36,508] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 18
> [2019-09-18 09:25:57,527] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 19
> [2019-09-18 09:30:16,488] [NioProcessor-2] WARN 
> org.apache.sshd.server.session.ServerConnectionService : Received 
> SSH_MSG_CHANNEL_CLOSE on unknown channel 21
> {noformat}
> [1] 
> [https://bugs.chromium.org/p/gerrit/issues/detail?id=11491|https://bugs.chromium.org/p/gerrit/issues/detail?id=11491&;]
> [2] [https://gerrit-review.googlesource.com/c/gerrit/+/207752]
> [3] [https://gerrit-review.googlesource.com/c/gerrit/+/237730]
> [4] [https://gerrit-review.googlesource.com/c/gerrit/+/237731]



--
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

Reply via email to