Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ipfs: Remove concurrency limit, rely on rate limit #4570

Merged
merged 3 commits into from
Apr 26, 2023

Commits on Apr 24, 2023

  1. ipfs: Remove concurrency limit, rely on rate limit

    The concurrency limit, because it uses a semaphore, had unfortunate
    interactions with the use of `call_all` in the polling monitor.
    `CallAll` can internally have requests which are holding the semaphore,
    so it must be polled regularly to check on those requests.
    If the task holding the `CallAll` hangs on some other future, that
    can lead to a deadlock.
    
    In our case, it can hang in the `response_sender.send((id, response)).await`,
    if the channel is full and the subgraph runner takes a long time to check it.
    This could be fixed, but the footgun would remain so it seemed best to
    rely only on the rate limit which can't deadlock.
    leoyvens committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    ec4c42b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    20bd8cc View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2023

  1. address review

    leoyvens committed Apr 26, 2023
    Configuration menu
    Copy the full SHA
    344865e View commit details
    Browse the repository at this point in the history