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

Max Message Size in RabbitMQ .NET client 6.4.0 up to 7.0.0 #1572

Open
lukebakken opened this issue May 16, 2024 Discussed in #1379 · 4 comments
Open

Max Message Size in RabbitMQ .NET client 6.4.0 up to 7.0.0 #1572

lukebakken opened this issue May 16, 2024 Discussed in #1379 · 4 comments
Assignees
Milestone

Comments

@lukebakken
Copy link
Contributor

Discussed in #1379

Originally posted by dank100 August 30, 2023
From 6.4.0 and forward There is now a limit on the message size, as you rightfully explain in your changelogs:

"This release adds the ability to specify a maximum message size when receiving data. The default values are:

RabbitMQ .NET client 7.0.0 and beyond: 128MiB

RabbitMQ .NET client 6.4.0 up to 7.0.0: no limit by default"

However, when I specify the cf.MaxMessageSize = 536870912 as in your example. I'm still limited by the max size of the message, i.e. 134217728.

If I downgrade to 6.3.1, I'm not limited by the MessageSize, on the very same cluster and exchange.

I'm not sure this is any bug, but I cannot seem to figure it out.

An observation I've made in ConnectionFactory.cs is that on your main branch we have.

public const uint DefaultMaxMessageSize = 134217728;

However, on, tag 6.5.0 we have.

public const uint DefaultMaxMessageSize = 0;

In your docs you specify that 0 means "unlimited".

With me using 6.5.0, I would expect the MaxMessageSize being 0, whether I specify it or not. However, as explained I'm limited by the MaxMessageSize of 134217728.

Is this anything you've heard of before, and are you able to pinpoint me in the right direction?

  • Dan
@lukebakken lukebakken added this to the 6.9.0 milestone May 16, 2024
@lukebakken lukebakken self-assigned this May 16, 2024
@lukebakken
Copy link
Contributor Author

I think the intent is to disallow messages that are larger than a specific upper limit.

@Gsantomaggio @michaelklishin - should there be a way to disable the maximum message size limit?

I just merged #1566, and realized that, as it stands, there is no way for the user to specify a max message size greater than 128MiB. Frankly, I consider this a feature but others may think otherwise.

@michaelklishin
Copy link
Member

@lukebakken in the Java client and RabbitMQ itself, you can bump the limit but not disable it entirely. Furthermore, in RabbitMQ itself there is a hard limit of 512 MiB which I find reasonable. Even 200-300 MiB large messages really belong to a blob store.

I think it makes sense for this client to simply follow suit.

@michaelklishin
Copy link
Member

In addition, "unlimited message size" is not something that RabbitMQ supports, IIRC there is a hard cap at 512 MiB (it was last updated in January 2019 in https://github.com/rabbitmq/rabbitmq-common/pull/289/files).

Allowing "unlimited message size" also would go against the general direction of RabbitMQ server, see rabbitmq/rabbitmq-server#11187.

@Gsantomaggio
Copy link
Member

agree with @michaelklishin

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

3 participants