JasperFx / wolverine

Supercharged .NET server side development!
https://wolverinefx.net
MIT License
1.23k stars 131 forks source link

https://wolverine.netlify.app/guide/messaging/transports/rabbitmq.html#using-rabbit-mq #323

Closed dannythunder closed 1 year ago

dannythunder commented 1 year ago

I followed the RabbitMq documentation and I hit a bug:

the .PreFetchSize(5) is causing a crash:

C# RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=540, text='NOT_IMPLEMENTED - prefetch_size!=0 (5)', classId=60, methodId=10 at RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply(TimeSpan timeout)

Docker / Rabbit messagebroker | 2023-04-24 17:53:17.411576+00:00 [error] <0.645.0> Error on AMQP connection <0.645.0> (172.18.0.1:43798 -> 172.18.0.4:5672, vhost: '/', user: 'guest', state: running), channel 6:

messagebroker | 2023-04-24 17:53:17.411576+00:00 [error] <0.645.0> operation basic.qos caused a connection exception not_implemented: "prefetch_size!=0 (5)"

Environment:

(tested both .17 and .16)

The prefetch_size!=0 (5) sure do look a bit weird. This is probably NOT a Wolverine bug, if not, maby edit the documentation a bit stating it's not working yet as expected?

dannythunder commented 1 year ago

This states using channel.BasicQos as prefetch.

Hmm... found that you are calling Channel!.BasicQos(Queue.PreFetchSize, Queue.PreFetchCount, false);

jeremydmiller commented 1 year ago

This is embarrassing, because that's apparently not tested. PreFetchCount is implemented, but Rabbit itself doesn't support PreFetchSize