[Ludia-users 179] 配列の検索で server process was terminated by signal 11

Zurück zum Archiv-Index

ASARI Takashi asari****@users*****
2008年 1月 18日 (金) 07:14:13 JST


おはようございます。浅利といいます。

PostgreSQL 8.2.5 + Ludia 1.4.0 で、配列型インデックスを使っています。
おおむね次のような CREATE 文のテーブルとインデックスを作っています。
割とどうでもいいケースですが、望まない挙動がありましたのでご報告します。

CREATE TABLE names (id1 text, id2 text, iname text, oname text, word text)
ALTER TABLE names ADD PRIMARY KEY (id1, id2)
CREATE INDEX fulltxt_idx ON names USING fulltexta((array[iname, oname, word]))

= ひとつめ =

このテーブルに対して、次のような SQL 文は正常に実行されます。

SELECT * FROM names WHERE array[iname, oname, word] @@ ?

一方、次のような SQL 文を実行すると、

SELECT * FROM names WHERE array[oname, iname, word] @@ ?

次のようなエラーが出て接続が切れてしまいます。

server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.

サーバのログには以下のようなログが残されていました。

DEBUG:  pgsenna2: logger_info_set.
DEBUG:  pgsenna2: pgs2contain 5094823 -1
LOG:  server process (PID 28477) was terminated by signal 11
LOG:  terminating any other active server processes

ludia.enable_seqscan = off で (おそらく正しく) エラーを返しました。

ERROR:  pgsenna2: sequencial scan disabled


= ふたつめ =

次の文の ? を適当な名前 ('山田' など) に置き換えたものは正常に結果を返します。

SELECT
 pgs2contain(iname, ?),
 pgs2contain(oname, ?),
 pgs2contain(word, ?),
 pgs2getscore(ctid) AS score
FROM names
WHERE array[iname, oname, word] @@ ?
ORDER BY score DESC LIMIT 1

一方、次の文は '山田', '中津川', '佐藤' で成功し、 '古川', '菅原' で成功しませんでした。
上記と同様、エラーが出て接続が切れてしまいます。

SELECT
 pgs2contain(oname, ?),
 pgs2contain(iname, ?),
 pgs2contain(word, ?),
 pgs2getscore(ctid) AS score
FROM names
WHERE array[iname, oname, word] @@ ?
ORDER BY score DESC LIMIT 1

pgs2getscore() を使わないようにすると、エラーはなくなります。
また、こちらは ludia.enable_seqscan = off は影響しませんでした。
REINDEX を試してみましたが、依然エラーは出ています。
( もしかするとエラーが起こるクエリには変化があったかもしれません。 )


以上二点、原因が同じかどうかわかりませんが。それにレアケースと思いますが。
何かのお役に立てば幸いです。よろしくお願いいたします。

--
ASARI Takashi @ Todai Fink Team
http://fink.sodan.ecc.u-tokyo.ac.jp/




Ludia-users メーリングリストの案内
Zurück zum Archiv-Index