RHEL4でのPostgreSQL不具合にまいったまいった。
@ keruru · Wednesday, Jul 5, 2006 · 3 分で読めます · 更新日時 Jul 5, 2006

仕事では仕方なくRedHatLinuxを使う事があります。普段はDebianが好きですけれども。そんな仕事でのお話。

とあるシステムでPostgreSQLを用いていた。今回リプレイスを実施したのだが、リプレイス作業は完璧に実施した筈なのだけれど、一部挙動がおかしいと言う。WebからCGIでデータを変更出来るようになっているのだけれども、正常に変更しないとか。

えー、とか思いながらコードをおっかけてみたりデータが壊れていないかとか色々調べてみるもまったく問題ない。これはデバッグしかないと開発担当と調査をしていたら、PostgreSQLのとても変な挙動に出会った。仮にこんなデータがあるとしよう。

leaf=# select * from character;
id |     name
----+--------------
1 | 神岸あかり
2 | HMX-12セリオ
3 | HMX-13マルチ
4 | 来栖川芹香
5 | 長岡志保
6 | 松原葵
7 | 姫川琴音
8 | 藤田浩之
9 | 保科智子
10 | 宮内レミィ
11 | 来栖川綾香
12 | 雛山理緒
(12 rows)

そこへ、こんなselect文を投げてみるとする。

select * from character where name = '姫川琴音';

そうすると、まぁ単純に考えれば where name = と、イコールな訳で、琴音ちゃんだけを検索してくる筈!!!なのだが。。。

leaf=# select * from character where name = '姫川琴音';
id |   name
----+----------
7 | 姫川琴音
9 | 保科智子
12 | 雛山理緒
(3 rows)

は??なにそれ。

なんかどーにもおかしい。ちなみにこの現象が出ているバージョンは postgresql-server-7.4.8-1.RHEL4.1 と言うRHEL4のCD(iso)に入っているバージョン。rhnより持ってこれるpostgresql-server-7.4.13-2.RHEL4.1では現象が出ない(直っている?!)様なのでRHEL4で日本語を使う場合さっくりバージョンアップしておきたい所。

ところでこの問題本家のchange logにも無い様だしRedHatのchange logにも無い様だし、誰も事象を認識していなくてたまたまこの7.4.8のRHEL4のrpmで出ているだけなのかも。

と考えると、ちょっとおっかない感じがする。

ちなみにまっさらのサーバに1から再インストールして再現しているので、ボクの思い過ごしでは無さそう。がびーん。

【2006/07/05 15:36 追記】

この問題をIRCで話をしたら –no-locale 問題だとさっくり回答を頂きました。ありがとう。あぁ、–no-locale問題自体はちょっと前に小耳に挟んだ記憶はあったのですが、これがそれでしたか!!!と言う感じ。

PostgreSQLをrpmで入れた後初めて起動した際にinitdbされるのは、メッセージ見てればわかる所ですけれども、その際にinitdbのオプションとして–no-localeが入っていない為に上記の様な問題が出ると言うもの。

なので、対処方法としては起動スクリプトを使う前に /etc/rc.d/init.d/postgresql 辺りをいじってinitdbしている所で–nolocaleを付けてしまう、とかが楽かな。 CentOSやら類似のディストリビューションでも出る場合があるそうなので、変だな?と思ったらこの辺疑ってみよう。特に日本語(に限らず英語圏以外の言語)をDB内で使っている場合。

【2006/07/05 16:16 追記】

本家change logを追っかけていたら、7.4.11辺りで手が入っていますね。RHEL5になったら幸せになれるかもですが、暫くは注意した方がよさそう。

(C)Keruru. All Rights Reserved
keruruのブログ
けるるの日常を綴る...
4k android battery blackberry chromebook conoha crf250rally dev develop devstack eco evernote ffxi gpdpocket hugo ipad josug linux motorcycle newyear nginx opcel openstack papercuts taiwan ubuntu unihertz usb-c wordpress 財布

© 2020 Keruru Digit

Powered by Hugo with theme Dream.

About Me

ペンネーム/Nick

けるる etc

お仕事

テクニカルライティング/システムエンジニア/ネットワークエンジニア

愛用中のPC

  • NEC LAVIE ProMobile
  • SAMSUNG Chromebook Pro
  • Surface Pro 4
  • ThinkPad T440s
  • GPD Pocket

愛用中のPDA/SmartPhone

  • Xperia 1(MAIN/docomo/SO-03L)
  • Unihertz TiTAN(SUB/docomo/SIM FREE)
  • OPPO Reno-A(SUB/rakuten/SIM FREE)
  • iPad Pro 11inch(SUB/docomo/SIM FREE)

愛車

  • MITSUBISHI PAJERO mini ‘2012
  • HONDA CRF250RALLY ‘2018
  • MERIDA SCULTURA4000 ‘2015
  • Carry-Me ‘2016
  • GIOS PANTO ‘2007
  • R&M BD-1 ‘2006

SNS