rschooley
How can I debug issues using an erlang lib?
I am trying out rabbit streams but am having some issues using the Lake library.
I am getting a malformed error from inside the library:
[error] GenServer #PID<0.656.0> terminating
** (CaseClauseError) no case clause matching: {:error, {:malformed, <<65, 77, 81, 80, 0, 0, 9, 1>>}}
(lake 0.1.2) /Users/me/projects/my-app/deps/lake/src/lake_raw_connection.erl:36: :lake_raw_connection.peer_properties/1
(lake 0.1.2) /Users/me/projects/my-app/deps/lake/src/lake_raw_connection.erl:24: :lake_raw_connection.connect1/6
(lake 0.1.2) /Users/me/projects/my-app/deps/lake/src/lake_raw_connection.erl:9: :lake_raw_connection.connect/6
(lake 0.1.2) /Users/me/projects/my-app/deps/lake/src/lake_connection.erl:35: :lake_connection.connect/6
...
How do I decode this value to debug the issue? The value doesn’t look particularly long, is this even a useful error message? Is there another way I can troubleshoot this issue?
Calling code for background:
result = :lake.connect(
'localhost',
5672,
'guest',
'guest',
'/'
)
I thought it might be an issue passing binaries/strings instead of char lists, but have tried <<"localhost">>, 'localhost', String.to_charlist("localhost"), etc but the called function arguments match so I don’t think it is that.
Marked As Solved
derek-zhou
Look at the source. It says it received some data it cannot recognize. Are you sure you are using the right port (5672)?
Google tells me that 5672 is the RabbitMQ port and 5552 is the RabbitMQ Streaming port
Also Liked
al2o3cr
This is the four characters AMQP followed by a version number - it’s the header from AMQP v0.9.1; that’s not the protocol that lake wants to speak.
+1 for @derek-zhou’s suggestion that the wrong port is being used.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









