[jira] [Comment Edited] (SSHD-1028) SSH_MSG_DISCONNECT: 12 "Too many concurrent connections (64) - max. allowed: 64"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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