Fuse MQ Enterprise
  1. Fuse MQ Enterprise
  2. ENTMQ-32

Attempt to connect to a child container hangs, fails with incorrect credentials or throws StackOverflowError

    Details

    • Type: Bug Bug
    • Status: Open Open
    • Priority: Critical Critical
    • Resolution: Unresolved
    • Affects Version/s: 7.0.0
    • Fix Version/s: 7.0.3-fuse-xx-xx
    • Component/s: None
    • Labels:
      None
    • Environment:
      fuse-mq-7.0.0.fuse-037
    • Similar Issues:
      Show 8 results 

      Description

      Start with a clean instance of Fuse MQ, create an ensemble and create one or many child containers:

      FuseMQ:karaf@root> ensemble-create root
      FuseMQ:karaf@root> ensemble-list
      [id]
      root
      FuseMQ:karaf@root> container-list
      [id]                           [version] [alive] [profiles]                     [provision status]
      root                           1.0       true    fabric, fabric-ensemble-0000-1
      FuseMQ:karaf@root> container-create-child root child 3
      The following containers have been created successfully:
      	child1
      	child2
      	child3
      FuseMQ:karaf@root> container-list
      [id]                           [version] [alive] [profiles]                     [provision status]
      root                           1.0       true    fabric, fabric-ensemble-0000-1 
        child1                       1.0       true    default                        success
        child2                       1.0       true    default                        success
        child3                       1.0       true    default                        success
      

      All containers provisioned successfully. ps aux | grep java shows all 4 containers running happily.

      Now try to connect to one of them, e.g. child1. If you are lucky, you will get a "Bad username/password" message (can't remember the exact one now).
      Otherwise, the system may hang indefinitely, or you may get a StackOverflowError:

      FuseMQ:karaf@root> connect child1
      Connecting to host localhost on port 8102
      Connected
      Error executing command: java.lang.StackOverflowError
      

      In the logs you can see that the authentication is failing:

      2012-03-23 16:13:49,203 | INFO  | NioProcessor-31  | ClientSessionImpl                | client.session.ClientSessionImpl   73 | 22 - sshd-core - 0.5.0 | Session created...
      2012-03-23 16:13:49,204 | INFO  | NioProcessor-31  | ClientSessionImpl                | client.session.ClientSessionImpl  385 | 22 - sshd-core - 0.5.0 | Server version string: SSH-2.0-SSHD-CORE-0.5.0
      2012-03-23 16:13:49,204 | INFO  | NioProcessor-31  | ClientSessionImpl                | client.session.ClientSessionImpl  234 | 22 - sshd-core - 0.5.0 | Received SSH_MSG_KEXINIT
      2012-03-23 16:13:49,207 | INFO  | NioProcessor-31  | DHG1                             | shd.client.kex.AbstractDHGClient   78 | 22 - sshd-core - 0.5.0 | Send SSH_MSG_KEXDH_INIT
      2012-03-23 16:13:49,211 | INFO  | NioProcessor-31  | DHG1                             | shd.client.kex.AbstractDHGClient   93 | 22 - sshd-core - 0.5.0 | Received SSH_MSG_KEXDH_REPLY
      2012-03-23 16:13:49,216 | INFO  | NioProcessor-31  | ClientSessionImpl                | d.common.session.AbstractSession  691 | 22 - sshd-core - 0.5.0 | Send SSH_MSG_NEWKEYS
      2012-03-23 16:13:49,216 | INFO  | NioProcessor-31  | ClientSessionImpl                | client.session.ClientSessionImpl  254 | 22 - sshd-core - 0.5.0 | Received SSH_MSG_NEWKEYS
      2012-03-23 16:13:49,217 | INFO  | NioProcessor-31  | ClientSessionImpl                | client.session.ClientSessionImpl  420 | 22 - sshd-core - 0.5.0 | Send SSH_MSG_SERVICE_REQUEST for ssh-userauth
      2012-03-23 16:13:49,219 | INFO  | l Console Thread | UserAuthPassword                 | shd.client.auth.UserAuthPassword   40 | 22 - sshd-core - 0.5.0 | Send SSH_MSG_USERAUTH_REQUEST for password
      2012-03-23 16:13:49,222 | INFO  | NioProcessor-31  | UserAuthPassword                 | shd.client.auth.UserAuthPassword   52 | 22 - sshd-core - 0.5.0 | Received SSH_MSG_USERAUTH_FAILURE
      2012-03-23 16:13:49,227 | INFO  | l Console Thread | ClientSessionImpl                | d.common.session.AbstractSession  287 | 22 - sshd-core - 0.5.0 | Closing session
      

      No username, passwords, etc. have been changed. All configuration is the default one.

      As per the users.properties config file, the credentials should be karaf/karaf. They do not work, not even via direct SSH:

      [raul@~/Workbench/fuse-mq-7.0.0.fuse-037/instances/child1/etc$] ssh -p 8102 karaf@localhost
      karaf@localhost's password: karaf
      Permission denied, please try again.
      

      This does work on Fuse ESB 7 (full package). Trying to spot differences, I see the following JAAS bundles in Fuse ESB:

      FuseESB:karaf@root> la | grep -i jaas
      [  15] [Active     ] [Created     ] [       ] [   28] Apache Karaf :: JAAS :: Config (2.2.5.fuse-7-037)
      [  28] [Active     ] [Created     ] [       ] [   30] Apache Karaf :: JAAS :: Modules (2.2.5.fuse-7-037)
      [  38] [Active     ] [Created     ] [       ] [   30] Apache Karaf :: Jaas :: Command (2.2.5.fuse-7-037)
      [  57] [Active     ] [Created     ] [       ] [   30] Apache Karaf :: JAAS :: Jasypt Encryption (2.2.5.fuse-7-037)
      

      And the following in Fuse MQ:

      FuseMQ:karaf@root> la | grep -i jaas
      [  13] [Active     ] [Created     ] [       ] [   28] Apache Karaf :: JAAS :: Config (2.2.5.fuse-7-037)
      [  26] [Active     ] [Created     ] [       ] [   30] Apache Karaf :: JAAS :: Modules (2.2.5.fuse-7-037)
      [  36] [Active     ] [Created     ] [       ] [   30] Apache Karaf :: Jaas :: Command (2.2.5.fuse-7-037)
      [ 144] [Active     ] [Created     ] [       ] [   60] Fuse Fabric :: JAAS (7.0.0.fuse-037)
      

      Only one JaasRealm service is exported in Fuse ESB:

      FuseESB:karaf@root> ls | grep -i JaasRealm
      org.apache.karaf.jaas.config.JaasRealm
      

      (exported by bundle Apache Karaf :: JAAS :: Modules (28))

      Whereas two are shown on Fuse MQ:

      FuseMQ:karaf@root> ls | grep -i JaasRealm
      org.apache.karaf.jaas.config.JaasRealm
      org.apache.karaf.jaas.config.JaasRealm
      

      (exported by bundles Apache Karaf :: JAAS :: Modules (26) & Fuse Fabric :: JAAS (144)).

      In conclusion, the Fuse Fabric :: JAAS bundle seems to be interfering with the SSH authentication.

        Activity

        Hide
        Gary Tully
        added a comment -

        verify, see if this is really fabric related.

        Show
        Gary Tully
        added a comment - verify, see if this is really fabric related.
        Hide
        Dejan Bosanac
        added a comment -

        Try using container-connect. Fabric uses it's own jaas realm and default user/pass is admin/admin. That should work too with default connect and ssh

        Show
        Dejan Bosanac
        added a comment - Try using container-connect. Fabric uses it's own jaas realm and default user/pass is admin/admin. That should work too with default connect and ssh

          People

          • Assignee:
            Dejan Bosanac
            Reporter:
            Raul Kripalani
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: