[pgsql-jp: 40696] Re: pgsql_tmp以下の一時ファイルが残存するパターンについて

Itagaki Takahiro itagaki.takahiro @ gmail.com
2011年 2月 21日 (月) 17:17:10 JST


2011/2/21  <toshihideka4316 @ zenrin.co.jp>:
>> また、一時ファイルを作成したバックエンドの異常終了時にも残存します。
>> # 残存するのは、クラッシュ時にデバッグ用途・・などの理由だったと思います。
> こちらでもそうだと考え動作検証をしたところ、
> 以下のパターンで一時ファイルが削除されファイル残存が再現しませんでした。

笠原さんの言う異常終了は、サーバのクラッシュを指します。
片山さんの言う異常終了は、クライアントのエラーを指します。
両者は全く違うものなので、動作が違って当然です。

> 1)一時ファイルを作成するSELECT文を発行中にセッションを切断
> 2)一時ファイルを作成しOut of memoryとなるSelect文を発行
> 1)2)共通で、エラー発生後、約5分サーバのバックエンドプロセスが残存し、
> バックエンドプロセス終了後に一時ファイルが削除されました。
> その為、一時ファイルが残存する状態を再現できていない状況です。

サーバは異常終了していませんので、サーバプロセス終了時に適切な
クリーンナップが走ります。5分は切断に気づくのにかかるタイムアウト時間でしょうか。

> これは異常時に一時ファイルが必ず残存するわけではないということでしょうか。
> 一時ファイル残存を再現させる方法をご存知であればご教授願います。

サーバを異常終了させたいだけなら、pg_ctl stop -m immediate が使えます。


-- 
Itagaki Takahiro


pgsql-jp メーリングリストの案内