rabbitmq/rabbitmq-cli

Stream operation that produces an error fails with a protocol Enumerable not implemented

lukebakken opened this issue · 2 comments

https://groups.google.com/d/topic/rabbitmq-users/m61ieh2LBjs/discussion

# rabbitmqctl list_queues   >queues.txt

** (Protocol.UndefinedError) protocol Enumerable not implemented for :error. This protocol is implemented for: Date.Range, File.Stream, Function, GenEvent.Stream, HashDict, HashSet, IO.Stream, List, Map, MapSet, Range, Stream, Date.Range, File.Stream, Function, GenEvent.Stream, HashDict, HashSet, IO.Stream, List, Map, MapSet, Range, Stream
    (elixir) /Users/jose/OSS/elixir/lib/elixir/lib/enum.ex:1: Enumerable.impl_for!/1
    (elixir) /Users/jose/OSS/elixir/lib/elixir/lib/enum.ex:141: Enumerable.reduce/3
    (elixir) lib/stream.ex:936: Stream.do_enum_transform/7
    (elixir) lib/enum.ex:1990: Enum.reduce_while/3
    (rabbitmqctl) lib/rabbitmq/cli/core/output.ex:65: RabbitMQ.CLI.Core.Output.print_output_0/3
    (rabbitmqctl) lib/rabbitmq/cli/core/output.ex:40: RabbitMQ.CLI.Core.Output.print_output/3
    (rabbitmqctl) lib/rabbitmqctl.ex:190: RabbitMQCtl.process_output/3
    (rabbitmqctl) lib/rabbitmqctl.ex:45: RabbitMQCtl.main/1

The cli would print most of the queues and then eventually hang. It would sometimes log the above error.

The version we are on is RabbitMQ 3.7.13 with Erlang 20.3.8.14.

A stream operation returned an :error. We should make sure that it doesn't block the command and if possible, provide more context.

Yep, those are my goals