Hello -
Thanks for using RabbitMQ. I'm a member of the core engineering team.
Carefully look at the first 16 octets
in this error log message:
2023-02-26 16:43:12.635470+00:00 [error] <0.1056.0> operation none caused a connection exception frame_error: "type 3, first 16 octets = <<\"{\\\"payload\\\":{\\\"res\">>: {invalid_frame_end_marker,\n
99}"
2023-02-26 16:43:15.638860+00:00 [error] <0.1056.0> closing AMQP connection <0.1056.0> (10.244.0.18:60608 -> 10.244.0.21:5672):
2023-02-26 16:43:15.638860+00:00 [error] <0.1056.0> fatal_frame_error
It looks as though your client application tried to publish a message containing a RabbitMQ error log message (invalid_frame_end_marker
) BACK to RabbitMQ and then another error happened.
What you should do at this point is share a git repository containing a complete, runnable set of code that I can use to reproduce this issue. Basically I should just clone the repo, and execute a command. Assume there is a 3-node RabbitMQ cluster available, or, provide your complete minikube configuration.
Thanks - Luke
Here's where that error text is generated:
https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/src/rabbit_reader.erl#L862-L879
...tracing it back, this is where the function was called from (note the error reason of
invalid_frame_end_marker
):https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/src/rabbit_reader.erl#L1035-L1042
I'm not sure why we're seeing more than 16 octets of data, however 🤷♂️
The RabbitMQ log message itself is JSON formatted. RabbitMQ does not format error messages that way so it must have come from your client application (or the library you're using), which is why I think it may be sending error messages back to the broker.
At any rate, some code to review would be helpful.