[Questions] eacces error for delete segment method. Causes queue to be unusable. Is this fixed in RabbitMQ version 4.3? #16496
-
Community Support Policy
RabbitMQ version usedother (please specify) Erlang version used27.3.x Operating system (distribution) usedWindows Server 2025 How is RabbitMQ deployed?Windows installer rabbitmq-diagnostics status outputSee https://www.rabbitmq.com/docs/cli to learn how to use rabbitmq-diagnostics DetailsLogs from node 1 (with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs DetailsLogs from node 2 (if applicable, with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs DetailsLogs from node 3 (if applicable, with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs Detailsrabbitmq.confSee https://www.rabbitmq.com/docs/configure#config-location to learn how to find rabbitmq.conf file location DetailsSteps to deploy RabbitMQ clusterInstall erlang. Install RabbitMQ. Setup users. Setup Vhosts. Enable new user to access those vhosts. Steps to reproduce the behavior in questionThe issue occurred after several hours of load testing the application where RabbitMQ is the central message broker. We have performed the same load multiple times before with the same RabbitMQ setup. advanced.configSee https://www.rabbitmq.com/docs/configure#config-location to learn how to find advanced.config file location DetailsApplication codeDetails# PASTE CODE HERE, BETWEEN BACKTICKSKubernetes deployment fileDetails# Relevant parts of K8S deployment that demonstrate how RabbitMQ is deployed
# PASTE YAML HERE, BETWEEN BACKTICKSWhat problem are you trying to solve?Note that we are using RabbitMQ 4.2.5 but that version couldn't be selected in drop down list. RabbitMQ is used in our application as the central message broker. We connect clients to the application and each of these clients have a set of queues of their own where we use the default topic exchange to get the message to each of these queues. In the load test we noticed that for one of these clients, the messages stopped being transmitted. When checking in the application logs and RabbitMQ logs, there we found that it was one queue that was experiencing eacces error for the method rabbit_classic_queue_index_v2,delete_segment (See logs from node 1). I tried to delete the queue but got the same error in the RabbitMQ management frontend. I tried to restart RabbitMQ but the management page wouldn't load and I got the following error in the RabbitMQ logs. I then tried to restart the VM hosting RabbitMQ and then I succeeded in starting RabbitMQ and eacess queue was back online. I have seen that there has been work on fixing some eacess errors for some method in RabbitMQ 4.3.x. Is this one of those methods? We are running RabbitMQ as single node setup. And I just want say, I really appreciate the overall performance and features of the recent RabbitMQ versions! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 9 replies
-
|
What kind of disks / filesystem do you use? These errors sometimes occur when RabbitMQ is run on fileshares etc. |
Beta Was this translation helpful? Give feedback.
@patriktiain RabbitMQ does not assume that it shares its data directory with any other tool. As explained above, on Windows this matters because RabbitMQ cannot delete a file that's concurrently opened (even exclusively for reading) by another process. The 3 retries every 10 ms that were introduced can only help so much, and even 10 retries would not be enough with an anti-virus potentially opening message store files for seconds.
Disable the scans for the RabbitMQ process and node data directory, or disable the scan entirely, or move away from Windows for running RabbitMQ (the problem is Windows-specific).