Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-4246

sshd 0.14.0 breaks client timeout

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.5, 4.0.3
    • 3.0.6, 4.0.4
    • karaf
    • None

    Description

      karaf-client.jar in Karaf version 3.0.5 has a new client idle timeout added
      as a result of ugprading to MINA SSHD 0.14.0.

      This causes the client to time out after 10 minutes even though the server
      idle timeout setting is different.

      Here's a patch:

      Index: src/main/java/org/apache/karaf/client/ClientConfig.java
      ===================================================================
      --- src/main/java/org/apache/karaf/client/ClientConfig.java	(revision 33766)
      +++ src/main/java/org/apache/karaf/client/ClientConfig.java	(revision 33767)
      @@ -38,6 +38,7 @@
           private int level;
           private int retryAttempts;
           private int retryDelay;
      +    private long idleTimeout;
           private boolean batch;
           private String file = null;
           private String keyFile = null;
      @@ -64,6 +65,7 @@
               level = Integer.parseInt(shellCfg.getProperty("logLevel", "1"));
               retryAttempts = 0;
               retryDelay = 2;
      +        idleTimeout =
      Long.parseLong(shellCfg.getProperty("sshIdleTimeout"));
               batch = false;
               file = null;
               user = null;
      @@ -293,4 +295,8 @@
           public String getKeyFile() {
               return keyFile;
           }
      +
      +    public long getIdleTimeout() {
      +      return idleTimeout;
      +    }
       }
      Index: src/main/java/org/apache/karaf/client/Main.java
      ===================================================================
      --- src/main/java/org/apache/karaf/client/Main.java	(revision 33766)
      +++ src/main/java/org/apache/karaf/client/Main.java	(revision 33767)
      @@ -37,6 +37,7 @@
       import org.apache.sshd.client.UserInteraction;
       import org.apache.sshd.client.channel.ChannelShell;
       import org.apache.sshd.client.future.ConnectFuture;
      +import org.apache.sshd.common.FactoryManager;
       import org.apache.sshd.common.RuntimeSshException;
       import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
       import org.fusesource.jansi.AnsiConsole;
      @@ -78,6 +79,7 @@
               int exitStatus = 0;
               try {
                   client = SshClient.setUpDefaultClient();
      +            client.getProperties().put(FactoryManager.IDLE_TIMEOUT,
      String.valueOf(config.getIdleTimeout()));
                   setupAgent(config.getUser(), config.getKeyFile(), client);
                   final Console console = System.console();
                   if (console != null) {
      
      

      Attachments

        Issue Links

          Activity

            People

              jbonofre Jean-Baptiste Onofré
              jbonofre Jean-Baptiste Onofré
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: