Postgres 오류: subplan "SubPlan 2"가 초기화되지 않았습니다

특정 사용자가 “무작위 게시물을 볼 때” 500 에러가 발생한다고 보고했습니다. 로그를 확인해 보니 이 사용자에게만 영향을 미치는 아래 에러들이 표시되고 있습니다. 이는 PG13으로 최신 업데이트가 된 표준 설치 환경입니다. 다른 사용자에서는 이러한 에러가 나타나지 않습니다. 이 에러들은 모두 private_messages와 관련된 것으로 보이며, 이는 "무작위 게시물"과는 맞지 않는 것 같습니다. 해당 에러를 검색해 보니 1년 전 몇몇 게시물에서 postgres 버그라고 주장하고 있었습니다.

Discourse 2.8.0.beta6 - https://github.com/discourse/discourse version f513266bcbc03eedebda17695b8a7ffbcad6ebcc

Started GET "/u/joe/private-message-topic-tracking-state" for 82.71.0.62 at 2021-10-07 07:08:25 +0000
Processing by UsersController#private_message_topic_tracking_state as JSON
  Parameters: {"username"=>"joe"}
Completed 500 Internal Server Error in 70ms (ActiveRecord: 0.0ms | Allocations: 1952)
PG::InternalError (ERROR:  subplan "SubPlan 2" was not initialized
CONTEXT:  parallel worker
)

사실 이는 최신 마이너 버전에서 해결된 PostgreSQL 버그입니다. 재빌드를 수행해 주시겠습니까? 그러면 PostgreSQL이 최신 마이너 버전으로 업데이트됩니다.

오. 그러니까

root@community:~# docker exec -it data bash -c 'psql --version'
psql (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)

그리고 재빌드 이후:

# docker exec -it data bash -c 'psql --version'
psql (PostgreSQL) 13.3 (Debian 13.3-1.pgdg100+1)

이 내용이 릴리스 노트에 언급되어 있었나요? 오. 8월쯤에는 이미 그렇게 된 것 같네요.

업데이트해야 할 사이트가 몇 군데 있습니다.

감사합니다, 라파엘!

그에 맞춰서, 이번 마이너 업그레이드 시점에 인덱스에 대해 vacuum과 concurrent rebuild를 수행하는 것을 추천하시나요? 저는 메이저 버전 13으로 업그레이드할 때 이 작업을 수행했습니다. 이번 마이너 업그레이드에서 이 작업을 수행하는 것은 불필요한가요, 나쁜 아이디어는 아니지만 필요 없는 건가요, 아니면 전혀 쓸모없는 건가요?

마이너 버전은 동일한 디스크 파일 형식과 호환되므로 그럴 필요가 없습니다.