/api/v1/follow_requests postgresql timeout
Nobody(?) on catgirl.science can see their follow requests because the query takes longer than 15 seconds on a freshly vacuumed and reindexed database.
Feb 25 11:16:51 lab pleroma: 11:16:51.867 [error] Postgrex.Protocol (#PID<0.387.0>) disconnected: ** (DBConnection.ConnectionError) client #PID<0.11436.0> timed out because it checked out the connection for longer than 15000ms
Feb 25 11:16:51 lab pleroma: 11:16:51.870 [error] #PID<0.11436.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
Feb 25 11:16:51 lab pleroma: Server: catgirl.science:80 (http)
Feb 25 11:16:51 lab pleroma: Request: GET /api/v1/follow_requests
Feb 25 11:16:51 lab pleroma: ** (exit) an exception was raised:
Feb 25 11:16:51 lab pleroma: ** (DBConnection.ConnectionError) tcp recv: closed
Feb 25 11:16:51 lab pleroma: (ecto) lib/ecto/adapters/postgres/connection.ex:79: Ecto.Adapters.Postgres.Connection.prepare_execute/5
Feb 25 11:16:51 lab pleroma: (ecto) lib/ecto/adapters/sql.ex:256: Ecto.Adapters.SQL.sql_call/6
Feb 25 11:16:51 lab pleroma: (ecto) lib/ecto/adapters/sql.ex:426: Ecto.Adapters.SQL.execute_and_cache/7
Feb 25 11:16:51 lab pleroma: (ecto) lib/ecto/repo/queryable.ex:133: Ecto.Repo.Queryable.execute/5
Feb 25 11:16:51 lab pleroma: (ecto) lib/ecto/repo/queryable.ex:37: Ecto.Repo.Queryable.all/4
Feb 25 11:16:51 lab pleroma: (pleroma) lib/pleroma/user.ex:623: Pleroma.User.get_follow_requests/1
Feb 25 11:16:51 lab pleroma: (pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:668: Pleroma.Web.MastodonAPI.MastodonAPIController.follow_requests/2
Feb 25 11:16:51 lab pleroma: (pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:5: Pleroma.Web.MastodonAPI.MastodonAPIController.action/2
Feb 25 11:17:06 lab pleroma: 11:17:06.770 [error] #PID<0.12468.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
This is the long-running query:
SELECT a0."id", a0."data", a0."local", a0."actor", a0."recipients", a0."inserted_at", a0."updated_at" FROM "activities" AS a0 WHERE (a0."data" ->> 'type' = 'Follow') AND (a0."data" ->> 'state' = 'pending') AND (a0."data" @> $1)