You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I remember troubleshooting a bug report for amqpstorm and looking at rabbitpy as a reference at the time I believe that it suffers from the same issue eandersson/amqpstorm#55
I believe that we should be re-using the id of previously closed channels. This is at least what pika does, and has been working great for amqpstorm.
The text was updated successfully, but these errors were encountered:
I think we've hit a problem with the way RabbitPy uses channels and their IDs.
We have a piece of code that connects to a RabbitMQ instance and receives a message - it does so by creating a new channel then, when the processing is done closing everything (uses the channel in a with statement)
The problem is that after about 1024 or 2048 calls RabbitPy crashes saying that there are too many channels.
The relevant piece of code is this:
if not self._channels:
return 1
if self._max_channel_id == self._channel0.maximum_channels:
raise exceptions.TooManyChannelsError
return self._max_channel_id + 1
I can see that the max_channel_id is incremented when a new channel is created but I don't see it ever getting decremented.
Shouldn't the max_channel_id go down if a channel is no longer used ? Should the max_channel_id be allowed to go over the maximum_channels value as long as open channels count is still below ?
I remember troubleshooting a bug report for amqpstorm and looking at rabbitpy as a reference at the time I believe that it suffers from the same issue
eandersson/amqpstorm#55
I believe that we should be re-using the id of previously closed channels. This is at least what pika does, and has been working great for amqpstorm.
The text was updated successfully, but these errors were encountered: