Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Bad frame read" when message with empty body received #54

Closed
zstyblik opened this issue Aug 8, 2014 · 4 comments
Closed

"Bad frame read" when message with empty body received #54

zstyblik opened this issue Aug 8, 2014 · 4 comments

Comments

@zstyblik
Copy link

zstyblik commented Aug 8, 2014

I've tested this with the latest version of https://github.com/celery/librabbitmq from pip and https://github.com/alanxz/rabbitmq-c and it seems to be current.

How to replicate:

  • create consumer and bind to any type of exchange(I've noticed it with headers, but it happends with any type of exchange)
  • send one or more message with an empty body
  • traceback should appear

This does happen only when message body is "". Even single white space prevents it from happening.

2014-08-07 11:40:42,742 ERROR      Thread-1    Traceback (most recent call last):
  File "/scratch/icflix-monitoring-robots/lib/amqp_consumer.py", line 120, in run
    self._connection.drain_events(0.01)
  File "/usr/lib/python2.7/dist-packages/librabbitmq/__init__.py", line 198, in drain_events
    self._basic_recv(timeout)
ChannelError: Bad frame read

RabbitMQ log

=WARNING REPORT==== 7-Aug-2014::11:28:44 ===
closing AMQP connection <0.5547.0> (192.168.253.9:56556 -> 192.168.253.11:5672):
connection_closed_abruptly
@armyofevilrobots
Copy link
Contributor

This might be fixed by pull request #59 .

@zstyblik
Copy link
Author

Given the description it seems it might. That would be great despite we've steered away from using headers.

@rodrigohdez1
Copy link

Hello guys,

I'm having this issue (although different exception) using librabbitmq 1.6.1

Process processor1_feeder2:
Traceback (most recent call last):
  File "/usr/bin/python-2.7.9/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/bin/python-2.7.9/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/my-consumer-app/consumer.py", line 107, in run_processes
    connection.drain_events()
  File "/opt/my-consumer-app/env/lib/python2.7/site-packages/librabbitmq/__init__.py", line 220, in drain_events
    self._basic_recv(timeout)
ConnectionError: Bad frame read

It seems like #59 was missed in 1.6.1 release as mentioned in #48. 🙁
I'm having trouble to keep my consumers alive in production systems as I don't have much control on what other applications / script might be sending. For example, empty messages.

Thanks,

@auvipy
Copy link
Member

auvipy commented Jan 15, 2018

@auvipy auvipy closed this as completed Jan 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants