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 blog chromebook cloud9 cms conoha core-server crf250rally dev develop devstack eco evernote gpdpocket happynewyear hugo ipad josug linux nginx nova opcel openstack papercuts taiwan the-corrs tmo 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