Closed wvandeun closed 1 month ago
There is a workaround by re declaring the rpcs queue manually. First we need to stop the server and git-worker containers
docker stop infrahub-infrahub-server-1 infrahub-infrahub-git-1 infrahub-infrahub-git-2
Then delete the existing rpcs queue and create it with a larger x-consumer-timeout value
docker exec -it infrahub-message-queue-1 rabbitmqadmin --username infrahub --password infrahub delete queue name=infrahub.rpcs
docker exec -it infrahub-message-queue-1 rabbitmqadmin --username infrahub --password infrahub declare queue name=infrahub.rpcs durable=true arguments='{"x-max-priority": 5, "x-consumer-timeout": 120000}'
Finally, start the server and git-worker containers again
docker start infrahub-infrahub-server-1 infrahub-infrahub-git-1 infrahub-infrahub-git-2
Fixed in #4384.
Component
API Server / GraphQL
Infrahub version
0.16.0.dev0
Current Behavior
When you have an Infrahub generator that takes longer than 30s to execute, the message on the rpcs queue does not get ack'ed within the 30s consumer timeout that is defined.
The message will then be picked up by another worker, which will likely in the same result. Eventually the generator will be reported as completed, but might not have completely finished.
The same situation seems to happen when the synchronization of an external git repository takes longer than 30s.
Expected Behavior
The consumer timeout should be increased for generators and repository sync process, or it should be a configurable setting.
Generators or repository synchronization might take longer than 30s to complete.
Steps to Reproduce
Additional Information
No response