[pgsql-jp: 33454] Re: select文でセグメンテーション違反

Hitoshi Taniguchi taniguchi @ chihaya-t3.co.jp
2004年 7月 1日 (木) 16:01:47 JST


谷口@質問者です。

清水様、ご協力ありがとうございます。
/etc/sysctl.confを修正し
 kernel.shmall = 2097152
 kernel.shmmax = 2147483648
として、再起動して、再処理をしてみました。
ipcs -m -l で確認すると、
 ---シェアードメモリの制限---
 セグメント数の最大値 = 4096
 セグメントサイズの最大(単位:KB) = 2097152
 max total shared memory (kbytes) = 8388608
 最小セグメントサイズ(単位:KB) = 1
となり、表示上の問題はなくなりました。
しかし、
----------------------------------------------------------
SELECT * FROM table_name ORDER BY key1,key2,key3,key4;
server sent data ("D" message) without prior row description ("T" message)
server sent data ("D" message) without prior row description ("T" message)
・・・同様のメッセージが延々と続きます
セグメンテーション違反です

     以上の様にして終了します。SELECTの実行から約30分後です。
----------------------------------------------------------
の状況に変化はありませんでした。
他に何かお気づきの点がありましたらお教え頂けますと助かります。
共有メモリ以外の問題なのでしょうか?
引き続き調査をしてみます。


> 清水です
---------略---------------------------------------------
> TurboLinux Server 8 でも同様に kernel.shmall = kernel.shmmax で
> 設定したら同様に max total shared memory 表示が 0 になりました。
> そのときは、共有メモリのサイズを小さくして再度確認すると、
> 下記の計算式のようになりました。
>
> max total shared memory = kernel.shmall * kernel.shmmni
>
> おそらくkernel.shmallの値が大きすぎてオーバフローしているため
> max total shared memory の値が 0 になっているものと思われます。
> これで正しいか自信がないのでRedHatに確認したほうがいいかもしれません。
>
> -- 
> 清水 昭博 <gen @ hek.co.jp>





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