-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
nsqd: ephemeral channels don't work with --mem-queue-size=0 #1395
Comments
That's correct.
|
However, I found that I did not have this problem with version 1.2.0, and the messages of 1.2.1 temporary channel could not be consumed. Whether this is a vulnerability is the same as the delayed message problem?( #1375 ) |
Thank you very much for your careful answer, I have a few questions: |
You may see disk queue files because the topic is not ephemeral, but the channel being ephemeral would still have this problem with mem-queue-size=0. The topic and each channel has its own set of memory and disk queues. Usually, if there are any channels, the topic queues do not accumulate any messages. Indeed, this is related to the change in 1.2.1 that completely disabled the mem-queue channel for mem-queue-size=0 (instead of leaving it a zero-buffer channel). Previously, it was possible for a single message to jump through the topic to the channels, and then through the channels to a consumer, if all are ready and poised to receive a message. But now all messages are forced through the "backend" disk queue, in each stage. So in your case the message is forced through the disk-queue for the topic, and then again it's forced through the disk-queue for the channel, but for an ephemeral channel that doesn't exist.
|
Will this problem be fixed in Version 1.2.1? |
eh, well, the issue was introduced in nsq v1.2.1 ... will it be "fixed" in v1.2.2 or v1.3.0? I don't know, but I have an unapproved pull-request which attempts to fix it, which you could try: #1376 (or just go back to nsq v1.2.0) |
@mreiferson Sorry for bothering but is there any progress? |
You can try using #1376 and leave some review about how it behaves for you. |
Well, thank you very much. |
When mem-queue-size= 0 is set, the message is sent to a temporary channel (#ephemeral), and it is found that the message can never be consumed. Is it because the mem-queue-size is exceeded and the message is directly discarded?
The text was updated successfully, but these errors were encountered: