You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GraphQL API provides two subscriptions, submit_and_await and status_change. Both subscriptions use txpool.tx_update_subscribe(tx_id).await under the hood to subscribe for events of the transaction.
The capacity of the subscription is 4064.
All slots are occupied by someone in Beta 4. It blocks users. Maybe someone tries to infinitely consume slots, or maybe we have a bug with slots releasing.
Solution
Add TTL(we can use TXPool's TTL) to shut down the subscription for submit_and_await.
Add TTL to shut down the subscription for status_change. But this subscription itself is meant to be infinite, so adding TTL may not be a good solution. Maybe instead, it is better to remove support for this subscription at all.
Add global TTL for all GraphQL tasks.
Investigate the correctness of subscription closing. We can add an integration test to verify correctness.
Instead of calling subscribe ().await it is better to call try_subscribe() and return an error to the user if we don't have any more slots.
Note
Making all proposed modifications in one PR is better because we need to create a release for beta 4.
The text was updated successfully, but these errors were encountered:
Problem overview
GraphQL API provides two subscriptions,
submit_and_await
andstatus_change
. Both subscriptions usetxpool.tx_update_subscribe(tx_id).await
under the hood to subscribe for events of the transaction.The capacity of the subscription is
4064
.All slots are occupied by someone in Beta 4. It blocks users. Maybe someone tries to infinitely consume slots, or maybe we have a bug with slots releasing.
Solution
submit_and_await
.status_change
. But this subscription itself is meant to be infinite, so adding TTL may not be a good solution. Maybe instead, it is better to remove support for this subscription at all.subscribe ().await
it is better to calltry_subscribe()
and return an error to the user if we don't have any more slots.Note
Making all proposed modifications in one PR is better because we need to create a release for beta 4.
The text was updated successfully, but these errors were encountered: