This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Description
We had a process attempt to shut down the same room using two, separate calls to the Admin API:
DELETE /_synapse/admin/v1/rooms/{roomId}
POST /_synapse/admin/v1/{roomId}/delete
Both of these method handlers eventually call RoomShutdownHandler.shutdown_room, and there doesn't look to be any code that deduplicates requests anywhere.
This lead to a state where two long-running shutdown processes for the same room occurred and choked the main processes' CPU, resulting in the need to restart the main process to recover its performance.