[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 9:00 PM:


Thanks [~wolft]!
{quote}Appears to be caused by 
[https://github.com/apache/mina-sshd/commit/45f84aab59b2e11d72942cffe9d810e37ab64959#diff-0923b58bc72c7eeda0b7c65559d3ead5L371]
 .
{quote}
Confirmed. I conducted a patch release: [1] from \{{sshd-2.5.1}} branch where I 
omitted the above commit, and updated the Gerrit upgrade to consume it: [2] and 
all Gerrit tests are passing again.

[1] [https://github.com/davido/mina-sshd/releases/tag/2.5.1-1-g9d0b8152]
 [2] [https://gerrit-review.googlesource.com/c/gerrit/+/274055]


was (Author: davido2):
Thanks [~wolft]!
{quote}Appears to be caused by 
[https://github.com/apache/mina-sshd/commit/45f84aab59b2e11d72942cffe9d810e37ab64959#diff-0923b58bc72c7eeda0b7c65559d3ead5L371]
 .
{quote}
Confirmed. I conducted a patch release: [1] from sshd-2.5.1 branch where I 
omitted the above commit, and updated the Gerrit upgrade to consume it: [2] and 
all Gerrit tests are passing again.

[1] [https://github.com/davido/mina-sshd/releases/tag/2.5.1-1-g9d0b8152]
 [2] [https://gerrit-review.googlesource.com/c/gerrit/+/274055]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 9:00 PM:


Thanks [~wolft]!
{quote}Appears to be caused by 
[https://github.com/apache/mina-sshd/commit/45f84aab59b2e11d72942cffe9d810e37ab64959#diff-0923b58bc72c7eeda0b7c65559d3ead5L371]
 .
{quote}
Confirmed. I conducted a patch release: [1] from sshd-2.5.1 branch where I 
omitted the above commit, and updated the Gerrit upgrade to consume it: [2] and 
all Gerrit tests are passing again.

[1] [https://github.com/davido/mina-sshd/releases/tag/2.5.1-1-g9d0b8152]
 [2] [https://gerrit-review.googlesource.com/c/gerrit/+/274055]


was (Author: davido2):
Thanks [~wolft]!

{quote}
Appears to be caused by 
https://github.com/apache/mina-sshd/commit/45f84aab59b2e11d72942cffe9d810e37ab64959#diff-0923b58bc72c7eeda0b7c65559d3ead5L371
 . 
{quote}

Confirmed. I conducted a patch release: [1] where I omitted the above commit, 
and updated the Gerrit upgrade to consume it: [2] and all Gerrit tests are 
passing again.

[1] https://github.com/davido/mina-sshd/releases/tag/2.5.1-1-g9d0b8152
[2] https://gerrit-review.googlesource.com/c/gerrit/+/274055

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:12 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:

 
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this are of the code recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:

 
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }

{code}
However, we have not touched this are of the code recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:14 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?


 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:13 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread Thomas Wolf (Jira)


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

Thomas Wolf edited comment on SSHD-1028 at 7/3/20, 4:20 PM:


Has the behavior of session closing changed?

When I log server-side session creation (in 
{{Nio2Acceptor.AcceptCompletionHandler.onCompleted()}}) and unmapping (in 
{{Nio2Service.unmapSession()}}) and then run 
{{org.apache.sshd.common.forward.ApacheServerJschClientTest}}, I do see all 
server sessions being closed, but most of them only after the last test. Thus 
if you do more than 64 (sequential) tests, it's possible that the session map 
in {{Nio2Service}} contains 64 or more old sessions. If those are still in the 
map when {{AbstractServerSession#getActiveSessionCountForUser()}} is called 
they'll count against the limit.

If I set 
{{server.getProperties().put(ServerFactoryManager.MAX_CONCURRENT_SESSIONS, 
4);}} in {{ApacheServerJschClientTest.startServer()}}, the last two tests fail 
with that same error message: "com.jcraft.jsch.JSchException: 
SSH_MSG_DISCONNECT: 12 Too many concurrent connections (4) - max. allowed: 4".

It's not related to JSch being used for the client – I can provoke the same 
kind of failure also with the {{ApacheServerApacheClientTest}} if I set 
MAX_CONCURRENT_SESSIONS to 4.


was (Author: wolft):
Has the behavior of session closing changed?

When I log server-side session creation (in 
{{Nio2Acceptor.AcceptCompletionHandler.onCompleted()}}) and unmapping (in 
{{Nio2Service.unmapSession()}}) and the run 
{{org.apache.sshd.common.forward.ApacheServerJschClientTest}}, I do see all 
server sessions being closed, but most of them only after the last test. Thus 
if you do more than 64 (sequential) tests, it's possible that the session map 
in {{Nio2Service}} contains 64 or more old sessions. If those are still in the 
map when {{AbstractServerSession#getActiveSessionCountForUser()}} is called 
they'll count against the limit.

If I set 
{{server.getProperties().put(ServerFactoryManager.MAX_CONCURRENT_SESSIONS, 
4);}} in {{ApacheServerJschClientTest.startServer()}}, the last two tests fail 
with that same error message: "com.jcraft.jsch.JSchException: 
SSH_MSG_DISCONNECT: 12 Too many concurrent connections (4) - max. allowed: 4".

It's not related to JSch being used for the client – I can provoke the same 
kind of failure also with the {{ApacheServerApacheClientTest}} if I set 
MAX_CONCURRENT_SESSIONS to 4.

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:13 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this are of the code recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:

 
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this are of the code recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:13 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this are of the code recently. In fact the above 
restriction was added 8 years ago in this CL: [1].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:14 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?

 
 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread David Ostrovsky (Jira)


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

David Ostrovsky edited comment on SSHD-1028 at 7/3/20, 8:15 AM:


Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Given, that all unit and integration tests in Gerrit are passing against SSHD 
release 2.4.0, can it be that there is a regression in SSHD session management 
code in 2.5.0 release?

[1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]


was (Author: davido2):
Thanks for the code pointers. In fact, we do restrict the concurrent session 
number per user, see [1]:
{code:java}
  final int maxConnectionsPerUser = cfg.getInt("sshd", "maxConnectionsPerUser", 
64);
  if (0 < maxConnectionsPerUser) {
    getProperties().put(MAX_CONCURRENT_SESSIONS, 
String.valueOf(maxConnectionsPerUser));
  }
{code}
However, we have not touched this code area recently. In fact the above 
restriction was added 8 years ago in this CL: [2].

Can it be that there is a regression in SSHD session management code in 2.5.0 
release?


 [1] 
[https://gerrit.googlesource.com/gerrit/+/3164e069abf81fb125e62965f55c91f02b5bde95/java/com/google/gerrit/sshd/SshDaemon.java#204]
 
 [2] 
[https://gerrit-review.googlesource.com/c/gerrit/+/18811/1/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java#149]

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at 

[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"

2020-07-03 Thread Thomas Wolf (Jira)


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

Thomas Wolf edited comment on SSHD-1028 at 7/3/20, 7:14 PM:


Very simple [reproducer in the JGit 
tests|https://git.eclipse.org/r/c/jgit/jgit/+/165814/1/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java]:
 sets the server's MAX_CONCURRENT_SESSIONS to 2, clones and then fetches twice: 
each is 1 ssh server session; the third one (i.e., the second explicit fetch) 
fails with 2.5.1. Works with 2.4.0.

Looks like the server does not close its server-side session when a client 
disconnects.


was (Author: wolft):
Very simple [reproducer in the JGit 
tests|https://git.eclipse.org/r/c/jgit/jgit/+/165814/1/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java]:
 sets the server's MAX_CONCURRENT_SESSIONS to 2, clones and then fetches twice: 
each is 1 ssh server session; the third one (i.e., the second explicit fetch) 
fails.

Looks like the server does not close its server-side session when a client 
disconnects.

> SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 
> 64"
> 
>
> Key: SSHD-1028
> URL: https://issues.apache.org/jira/browse/SSHD-1028
> Project: MINA SSHD
>  Issue Type: Bug
>Affects Versions: 2.5.0
> Environment: bazel test 
> //javatests/com/google/gerrit/acceptance/git:SshPushForReviewIT
>Reporter: David Ostrovsky
>Priority: Major
>
> I'm trying to migrate Gerrit to 2.5.0 and seeing this exception:
> {code}
> 80) 
> pushCommitsWithSameTreeNoChanges(com.google.gerrit.acceptance.git.SshPushForReviewIT)
> com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 12 Too many concurrent 
> connections (64) - max. allowed: 64 
>   at com.jcraft.jsch.Session.read(Session.java:1004)
>   at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:198)
>   at com.jcraft.jsch.Session.connect(Session.java:470)
>   at com.jcraft.jsch.Session.connect(Session.java:183)
>   at 
> com.google.gerrit.acceptance.SshSession.getSession(SshSession.java:111)
>   at com.google.gerrit.acceptance.SshSession.open(SshSession.java:46)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.initSsh(AbstractDaemonTest.java:541)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest.beforeTest(AbstractDaemonTest.java:456)
>   at 
> com.google.gerrit.acceptance.AbstractDaemonTest$1$1.evaluate(AbstractDaemonTest.java:230)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runners.Suite.runChild(Suite.java:128)
>   at org.junit.runners.Suite.runChild(Suite.java:27)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at