mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-11-14 15:30:45 -05:00
This fixes a race whereby: - User hits an endpoint. - No cached transaction so executes main code. - User hits same endpoint. - No cache transaction so executes main code. - Main code finishes executing and caches response and returns. - Main code finishes executing and caches response and returns. This race is common in the wild when Synapse is struggling under load. This commit fixes the race by: - User hits an endpoint. - Caches the promise to execute the main code and executes main code. - User hits same endpoint. - Yields on the same promise as the first request. - Main code finishes executing and returns, unblocking both requests. |
||
|---|---|---|
| .. | ||
| api | ||
| app | ||
| appservice | ||
| config | ||
| crypto | ||
| events | ||
| federation | ||
| handlers | ||
| http | ||
| metrics | ||
| push | ||
| replication | ||
| rest | ||
| static/client | ||
| storage | ||
| streams | ||
| util | ||
| __init__.py | ||
| notifier.py | ||
| python_dependencies.py | ||
| server.py | ||
| server.pyi | ||
| state.py | ||
| types.py | ||
| visibility.py | ||