[pgsql-jp: 38929] Re: terminated by signal 58
Teraoka Yoshinori
y-teraoka @ so-netm3.com
2007年 11月 7日 (水) 10:25:59 JST
寺岡です。
私も勉強になります。
Hisakazu Nakai wrote:
> Linux系では、32から63までのシグナルがリアルタイムシグナルとして
> 予約されていて、32から34は既に使われているということですね。
> その他のシグナル(35から63)はアプリケーション側で自由に使って
> いいんだけれど、デフォルトの動作はプロセスの終了とする(しよう)と
> いうことですね。Postgres側の実装として問題(落ち度)はないようですね。
> そうすると最初に戻って、誰がなんの動機で殺人を犯したかとなります。
Linux-PowerEdge の ML で聞いてみたら auditd で調べてみたら?
とアドバイスをもらいました。次回の発生を待たないとダメですが。
/etc/audit/audit.rules か /etc/audit.rules に
-a exit,always -S kill -F a1=58
とか書いてみると。
man auditctl
> メモリを喰いすぎたから落とされたのか、メモリが他のプロセスに
> 圧迫されてため、暇なプロセスとして落とされたのか。
> Linuxのメモリオーバーコミットについては下記URLにありました。
> http://d.hatena.ne.jp/Pirary/20071021/1192979177
> カーネルがプロセスを落とすときに使うシグナルは何番だろう?
死んでくれないと困るわけだし SIGKILL じゃないですかね。(と勝手に推測)
overcommit はデフォルトのままですが 4G の実メモリに 512M の shared_buffer で
基本的に PostgreSQL しか動かしてないですからメモリの使いすぎではないと思います。
OOM Killer はログに出ますしね。
> ただ、実際に殺されたのは、複数forkされているpostmasterの一つ
> ですよね。PostgreSQL全体が死んだわけではないですよね?
はい、1つの process だけが殺されます、が他のプロセスにも影響が出ます。
WARNING: terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and repeat your command.
--
Teraoka Yoshinori <y-teraoka @ so-netm3.com>
pgsql-jp メーリングリストの案内