Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-1079

Ruby Reactor interface fails with SSL.new ArgumentError

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: proton-0.12.0
    • Fix Version/s: proton-c-0.19.0
    • Component/s: ruby-binding
    • Labels:
    • Environment:
      Fresh checkout of master (#32fa7cb059). I believe this is happening in any released branch as well.
      Trying to connect to Azure Event Hubs using amqps.

      Description

      Using the vanilla qpid-proton/examples/ruby/reactor/simple_recv.rb. I get the following stacktrace:

      $ ./simple_recv.rb -a 'amqps://eh01-manage:<key>@plrtest-02.servicebus.windows.net/eh01/ConsumerGroups/qpid01/Partitions/1' -m 1
      /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/core/ssl.rb:104:in `initialize': wrong number of arguments (2 for 4) (ArgumentError)
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/connector.rb:84:in `new'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/connector.rb:84:in `connect'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/connector.rb:37:in `on_connection_local_open'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/event/event_base.rb:26:in `dispatch'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/event/event.rb:212:in `dispatch'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/global_overrides.rb:36:in `override?'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/global_overrides.rb:29:in `on_unhandled'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/event/event_base.rb:28:in `dispatch'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/event/event.rb:212:in `dispatch'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/handler/c_adaptor.rb:34:in `dispatch'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/reactor.rb:137:in `pn_reactor_process'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/reactor.rb:137:in `process'
      from /usr/local/rvm/gems/ruby-1.9.3-p484-railsexpress/gems/qpid_proton-0.3/lib/reactor/reactor.rb:120:in `run'
      from ./simple_recv.rb:57:in `<main>'

      Connector calls "Qpid::Proton::SSL.new(transport, @ssl_domain)" but the SSL constructor takes 4 arguments (and is private).

      I tried replacing the SSL.new call by SSL.create which takes transport and domain but the domain it expects is an SSLDomain instance while the domain passed by the connector is a Qpid::Proton::Reactor::SessionPerConnection.
      I can't figure out why the connector.ssl_domain is assigned to a SessionPerConnection instance.

        Attachments

          Activity

            People

            • Assignee:
              aconway Alan Conway
              Reporter:
              plerohel Philippe Le Rohellec
            • Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: