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

AMQP - RabbitMQ inputs fail with inequivalent arg 'x-queue-type' errors #6827

Open
vilitux opened this issue Nov 19, 2019 · 1 comment
Open

Comments

@vilitux
Copy link

vilitux commented Nov 19, 2019

After upgrading RabbitMQ to 3.8.1 and defining a new queue, Graylog is no longer able to consume this new queue. When trying to spawn a new input, the following error is shown in the logs:

2019-11-19 13:28:05,651 ERROR: org.graylog2.shared.inputs.InputLauncher - The [org.graylog2.inputs.syslog.amqp.SyslogAMQPInput] input with ID <5dd3ed3b7f7d630014c6f355> misfired. Reason: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-queue-type' for queue 'my-queue' in vhost '/': received none but current is the value 'classic' of type 'longstr', class-id=50, method-id=10).

Expected Behavior

Graylog successfully consumes messages from RabbitMQ running on 3.8.x.

Current Behavior

When spawning a new AMQP input, we're receiving this error:

2019-11-19 13:28:05,651 ERROR: org.graylog2.shared.inputs.InputLauncher - The [org.graylog2.inputs.syslog.amqp.SyslogAMQPInput] input with ID <5dd3ed3b7f7d630014c6f355> misfired. Reason: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-queue-type' for queue 'my-queue' in vhost '/': received none but current is the value 'classic' of type 'longstr', class-id=50, method-id=10).

Possible Solution

Make x-queue-type configurable/supplyable.

Steps to Reproduce (for bugs)

  1. make sure you have RabbitMQ 3.8.x running
  2. create a new queue, where the definition would be something along the following:
    {
      "name": "my-queue",
      "vhost": "/",
      "durable": true,
      "auto_delete": false,
      "arguments": {
        "x-queue-type": "classic"
      }
    }

Your Environment

4 node Graylog cluster on Kubernetes. Avg troughput is 4k messages p/s, using only AMQP inputs.

  • Graylog Version: 3.1.3 (docker image, graylog:3.1.3)
  • RabbitMQ Version: 3.8.1 (docker image, rabbitmq:3.8.1-management)
@zzet
Copy link

zzet commented Dec 26, 2019

UPD for issue:

channel.queueDeclare(queueName, true, false, false, null);

channel.queueDeclare(queueName, true, false, false, null);

vs

channel.queueDeclare(queueName, true, true, false, null);

Will be great to have possibility to configure third argument (all of them?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants