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

The library is not working with OTP 27 (But there is a workaround) #231

Closed
ono opened this issue Jul 1, 2024 · 4 comments · Fixed by esl/MongooseIM#4338
Closed

The library is not working with OTP 27 (But there is a workaround) #231

ono opened this issue Jul 1, 2024 · 4 comments · Fixed by esl/MongooseIM#4338

Comments

@ono
Copy link
Collaborator

ono commented Jul 1, 2024

This is a known issue with RabbitMQ - https://www.rabbitmq.com/blog/2024/05/23/erlang27-support and this library is depending on their Erlang client library. We are waiting for them to deliver a fix.

We also requested RabbitMQ team to continue to support amqp_client: rabbitmq/rabbitmq-server#11593

UPDATE on July 4, 2024

I found a workaround. rabbit_common 3.13.4 can be compiled with OTP 27. According to the RabbitMQ team, there has been no change on amqp_client since 3.12.x. Therefore you can use OTP 27 by overriding rabbit_common version in mix.exs like below.

  defp deps do
    [
      {:amqp, "~> 3.3"},
      {:amqp_client, "~> 3.12"},
      {:rabbit_common, "~> 3.13.4", override: true},
      ...

I ran unit tests with it and all passed.

We can't officially support it but I personally think the risk is low. The performance issue with OTP 27 seems to be server related.

@ono ono changed the title The library is not working with OTP 27 The library is not working with OTP 27 (But there is a workaround) Jul 4, 2024
arcusfelis added a commit to esl/MongooseIM that referenced this issue Jul 10, 2024
'maybe' is a reserved word now
Remove geas from plugins (problem with maybe)
Use rabbitmq_common with a fix pma/amqp#231
arcusfelis added a commit to esl/MongooseIM that referenced this issue Jul 23, 2024
'maybe' is a reserved word now
Remove geas from plugins (problem with maybe)
Use rabbitmq_common with a fix pma/amqp#231
arcusfelis added a commit to esl/MongooseIM that referenced this issue Jul 25, 2024
'maybe' is a reserved word now
Remove geas from plugins (problem with maybe)
Use rabbitmq_common with a fix pma/amqp#231
arcusfelis added a commit to esl/MongooseIM that referenced this issue Jul 25, 2024
Use rabbitmq_common with a fix pma/amqp#231
@epinault
Copy link

epinault commented Oct 11, 2024

has this been released?

I am running into

Because cowboy >= 2.9.0 depends on ranch 1.8.0 and rabbit_common >= 3.13.2-rc.1 depends on ranch 2.1.0, cowboy >= 2.9.0 is incompatible with rabbit_common >= 3.13.2-rc.1.
And because your app depends on cowboy ~> 2.12.0, rabbit_common >= 3.13.2-rc.1 is forbidden.
So, because your app depends on rabbit_common ~> 3.13.4, version solving failed.

@justincy
Copy link

justincy commented Oct 29, 2024

I also receive the error about conflicting ranch versions. It's caused by this PR in rabbit that was backported into 3.13.x.

@epinault You might try adding {:ranch, "~> 1.8.0", override: true}. It seems to work for me.

@epinault
Copy link

epinault commented Nov 1, 2024

unfortunately, seems like i am stuck because esaml also depends on cowboy and cause a conflict dependency too now

@ono
Copy link
Collaborator Author

ono commented Nov 3, 2024

4.0.0 is out and it supports OTP 27. The client is compatible with both RabbitMQ 3.x and 4.x. Please note that the RabbitMQ team has reported some performance issues with OTP 27.

https://www.rabbitmq.com/blog/2024/05/23/erlang27-support

This might not be relevant to the client side in most cases, but we recommend you monitor carefully.

I am not sure if the dependency issue has also been solved. At least, it doesn't seem to be directly related to the main topic. Please be aware that the dependency issue with amqp_client and rabbit_common is not something we can address here (this library has no control). You might need to report it to RabbitMQ team.

@ono ono closed this as completed Nov 3, 2024
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

Successfully merging a pull request may close this issue.

3 participants