Skip to content

auth_params as Dict{String,String} raises a MethodError #62

Open
@s-celles

Description

@s-celles

Hello,

using AMQPClient
login, password = "guest", "guest"
port = AMQPClient.AMQP_DEFAULT_PORT
auth_params = Dict("MECHANISM"=>"AMQPLAIN", "LOGIN"=>login, "PASSWORD"=>password)
conn = connection(;virtualhost="/", host="localhost", port=port, auth_params=auth_params)

raises the following error

┌ Warning: ChannelReceiver(0) task exiting. Unhandled exception: MethodError(AMQPClient.send_connection_start_ok, (AMQPClient.MessageChannel(0x0000, AMQPClient.Connection("/", "localhost", 5672, Sockets.TCPSocket(Base.Libc.WindowsRawSocket(0x0000000000000364) active, 0 bytes waiting), Dict{Symbol, Any}(:VersionMinor => 0x09, :VersionMajor => 0x00, :Locales => "en_US", :ServerProperties => Dict{String, Any}("capabilities" => Dict{String, Any}("consumer_cancel_notify" => 0x01, "exchange_exchange_bindings" => 0x01, "publisher_confirms" => 0x01, "basic.nack" => 0x01, "authentication_failure_close" => 0x01, "direct_reply_to" => 0x01, "connection.blocked" => 0x01, "consumer_priorities" => 0x01, "per_consumer_qos" => 0x01), "cluster_name" => "rabbit@8d53e8f4037b", "platform" => "Erlang/OTP 25.1.1", "copyright" => "Copyright (c) 2007-2022 VMware, Inc. or its affiliates.", "product" => "RabbitMQ", "information" => "Licensed under the MPL 2.0. Website: https://rabbitmq.com", "version" => "3.11.1"), :Mechanisms => "AMQPLAIN PLAIN"), Dict{String, Any}("consumer_cancel_notify" => 0x01, "exchange_exchange_bindings" => 0x01, "publisher_confirms" => 0x01, "basic.nack" => 0x01, "authentication_failure_close" => 0x01, "direct_reply_to" => 0x01, "connection.blocked" => 0x01, "consumer_priorities" => 0x01, "per_consumer_qos" => 0x01), 0, 0, 0, true, 60, true, 0x01, Channel{AMQPClient.TAMQPGenericFrame}(1024), Channel{UInt8}(1), Dict{UInt16, AMQPClient.AbstractChannel}(0x0000 => AMQPClient.MessageChannel(#= circular reference @-3 =#)), Task (runnable) @0x0000000072431d20, Task (runnable) @0x0000000072431f10, nothing, 1.666021798883e9, 0.0), 0x01, true, Channel{AMQPClient.TAMQPGenericFrame}(1024), Task (runnable) @0x0000000072432100, Dict{Tuple, Tuple{Function, Any}}((1, 10, 30) => (AMQPClient.on_connection_tune, Dict{Symbol, Any}(:framemax => 0, :heartbeat => 0, :channelmax => 256))), Message[], Channel{Union{Nothing, Message}}(1), Dict{String, AMQPClient.MessageConsumer}(), Dict{String, Channel{Message}}(), ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.InvasiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (8, 0, 0)), nothing), Dict("MECHANISM" => "AMQPLAIN", "PASSWORD" => "guest", "LOGIN" => "guest")), 0x0000000000007ece)
│   exception =
│    MethodError: no method matching send_connection_start_ok(::AMQPClient.MessageChannel, ::Dict{String, String})
│    Closest candidates are:
│      send_connection_start_ok(::AMQPClient.MessageChannel, ::Dict{String, Any}) at C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:1147
│    Stacktrace:
│     [1] on_connection_start(chan::AMQPClient.MessageChannel, m::AMQPClient.TAMQPMethodFrame, ctx::Dict{Symbol, Any})
│       @ AMQPClient C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:1143
│     [2] channel_receiver(c::AMQPClient.MessageChannel)
│       @ AMQPClient C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:478
│     [3] connection_processor(c::AMQPClient.MessageChannel, name::String, fn::typeof(AMQPClient.channel_receiver))
│       @ AMQPClient C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:358
│     [4] (::AMQPClient.var"#39#42"{AMQPClient.MessageChannel})()
│       @ AMQPClient .\task.jl:484
└ @ AMQPClient C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:379
ERROR: AMQPClient.AMQPClientException("Connection handshake failed")
Stacktrace:
 [1] connection(; virtualhost::String, host::String, port::Int64, framemax::Int64, heartbeat::Bool, keepalive::Int64, send_queue_size::Int64, auth_params::Dict{String, String}, channelmax::Int64, connect_timeout::Int64, amqps::Nothing)
   @ AMQPClient C:\Users\scell\.julia\packages\AMQPClient\4SE4N\src\protocol.jl:677
 [2] top-level scope
   @ REPL[5]:1

but it doesn't raises error with

auth_params = Dict{String,Any}("MECHANISM"=>"AMQPLAIN", "LOGIN"=>login, "PASSWORD"=>password)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions