Skip to content
Snippets Groups Projects
  1. Jan 13, 2023
    • Sean Quah's avatar
      Fix stack overflow in `_PerHostRatelimiter` due to synchronous requests (#14812) · 772e8c23
      Sean Quah authored
      
      When there are many synchronous requests waiting on a
      `_PerHostRatelimiter`, each request will be started recursively just
      after the previous request has completed. Under the right conditions,
      this leads to stack exhaustion.
      
      A common way for requests to become synchronous is when the remote
      client disconnects early, because the homeserver is overloaded and slow
      to respond.
      
      Avoid stack exhaustion under these conditions by deferring subsequent
      requests until the next reactor tick.
      
      Fixes #14480.
      
      Signed-off-by: default avatarSean Quah <seanq@matrix.org>
      772e8c23
Loading