plugindata テーブルのサイズが原因で OOM エラーが発生して pg_dump が失敗することがある

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

問題

Confluence の plugindata テーブルには、ユーザーがインストールしたプラグインの .jar ファイルが保持されます。このテーブルは、データ列に .jar ファイル全体 (サイズ) を保存します。Confluence の起動時に、このテーブルから読み込んで、 Confluence の plugins-cache フォルダーに入力します。このテーブルでは、pSQL を使用する場合、データ列で使用されるデータ型は bytea (バイナリー データ) です。このタイプは読み取り時に pSQL に制限があり、OOM が発生する可能性があります。

select data from plugindata;
ERROR: out of memory
DETAIL: Failed on request of size 268435456.

Backup error:
pg_dump: Dumping the contents of table "plugindata" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR: out of memory
DETAIL: Failed on request of size 159380181.
pg_dump: The command was: COPY public.plugindata (plugindataid, pluginkey, filename, lastmoddate, data) TO stdout;

診断

環境

  • PostgreSQL 9.6.x

原因

  • このメモリ問題の根本原因は、テキスト モード(つまり SELECT または pg_dump のいずれか) で bytea 列の出力を選択していることです。これには、基になるデータのサイズよりも多くのメモリが必要です。 
  • PostgreSQL におけるこのようなメモリ割り当ての制限は1 GB です。

回避策


説明 plugindata psql
製品Confluence
最終更新日 2019 年 8 月 20 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.