mirror of
https://github.com/zulip/zulip.git
synced 2026-07-21 21:05:48 +08:00
Since 3.8.15, RabbitMQ enforces a consumer_timeout (30 minutes by default): if a delivery is not acknowledged within it, the broker requeues the event and closes the channel. Because our queue workers acknowledge only after consume() returns, any task that runs longer causes the event to be redelivered and processed a second time. This timeout does nothing useful for us. It does not abort an overlong job, it merely re-runs it; and we already have our own mechanism (MAX_CONSUME_SECONDS) for bounding worker runtime, which we deliberately disable on deferred_work precisely because its jobs have no time bound. Self-serve Slack imports routinely exceed 30 minutes, so in practice this just redelivers the import for a duplicate, harmful run. Disable consumer_timeout globally. |
||
|---|---|---|
| .. | ||
| kandra | ||
| zulip | ||
| deps.yaml | ||