PostgreSQL,10才の誕生日を迎える

 2006年7月8日をもってPostgreSQLプロジェクトは10年目を迎える。これを記念 してカナダのトロントで,7月8日(土)と9日(日)の両日にわたって 「PostgreSQL Anniversary Conference」が開催されることになった。

 開催地 がトロントに選ばれた理由は,postgresql.orgの最初のサーバーがこの地に設置 されたからだ。日本からはちょっと(かなり?)遠いが,PostgreSQLのファンは 万難を排して参加しよう。もちろん筆者もカレンダーにしっかり印を付けてい る。

SolarisにPostgreSQLがバンドル

 米Sun Microsystemsは,次期バージョンのSolarisからPostgreSQLをバン ドルすることを発表した。バンドルするだけでなく,サポートを提供すること も検討していると見られるが,どのような形態のサポートが提供されるのかは 今のところ不明。

 それにしても,Sunが同じオープンソースデータベースの中 からMySQLではなくてPostgreSQLを選んだことは興味深い。

pgpool Global Developement Group結成

 PostgreSQL用のコネクションプール,レプリケーションソフトのpgpoolの開発 を行うインターネット上の仮想組織「pgpool Global Developement Group」が 結成された。

 pgpoolはもともと筆者が開発したものであるが,pgpoolをより publicな存在に発展させるためには,PostgreSQLと同様,オープンな開発組織 にゆだねることが必要と判断,今回の措置に踏み切ったものである。これにと もない,著作権の保持者も石井達夫個人から,pgpool Global Developement Groupに書き換えられた。pgpool Global Developement Groupとしての最初の リリースには,3.0というバージョン番号が付与され,2月4日にリリースされ た。

 本ニュース発表後,既にMandriva Linux用のRPMの提供の申し出があるなど, プロジェクトはじょじょに広がりを見せ始めており,今後の展開が期待される。

PostgreSQLマイナーバージョンアップ

 8.0以降のWindows版PostgreSQLにセキュリティ上の問題が見つかったこともあ り,PostgreSQL 7.3から8.1までのすべてのメジャーバージョンで2006年1月9 日にマイナーバージョンアップがあった(ちなみにPostgreSQL 7.2以前のバー ジョンは既にサポート対象から外れており,今後のバージョンアップはない)。

 今回リリースされたバージョンは,8.1.2/8.0.6/7.4.11/7.3.13だ.

 では主な修正点を見ていこう。なお()内は適用されるPostgreSQLのメジャーバー ジョン番号を示す。

  • postmasterのぜい弱性(win32/8.0/8.1)
  •  PostgreSQL 8.0と8.1のWindows版(win32)PostgreSQLで,非常に多くの接続要 求があるとpostmasterがダウンする障害が見つかった。postmasterがダウンす ると,再度postmasterを起動するまではPostgreSQLのサービスが完全に停止す るため,このぜい弱制はサービス不能攻撃(DoS: Denial of Service attack)を 可能にしてしまう。不特定多数にwin32版PostgreSQLのサービスを提供してい る場合は早急にバージョンアップしよう。

     この問題はwin32版のPostgreSQLでのみ発生する。

     これ以降の修正点はすべてのプラットフォームで該当する。

  • バッファ管理のバグ(8.0/8.1)
  •  共有バッファ管理にバグがあり,まだディスクに反映されていないバッファを 誤って再利用してしまうことがある。この結果,最悪の場合データが失われる。 深刻なバグであり,早急なバージョンアップをおすすめする。

  • autovacuumのクラッシュ(8.1)
  •  式インデックス(expression index)があるとautovacuumがクラッシュするバグ が修正された。

  • マルチバイト文字操作関数のバグ(8.1/8.0/7.4/7.3)
  •  特定のマルチバイト文字コードに関して,文字列操作関数strposと正規表現関 数が正しくない結果を返すことがあった。該当する文字コードは,日本語 EUC(EUC-JP),中国語EUC(EUC-CN),台湾EUC(EUC-TW)である。

    PostgreSQL 8.1に重大なぜい弱性

     本稿を書いている最中に,PostgreSQL 8.1で実装されたROLEコマンドに重大な ぜい弱性が発見された。SET ROLEコマンドに特定の文字列を入力すると, PostgreSQLのスーパユーザー権限を奪取できるというものである。一般ユーザーで のPostgreSQLへのログインを許可しているサイトでは,PostgreSQL 8.1.3への 早急なアップデートをおすすめする。

     この問題と,バグ修正のために以下のバージョンがリリースされた(このセキュ リティホールの修正があったのは8.1.3だけであり,他のバージョンにはセキュ リティホールは見つかっていない)。

    PostgreSQL 8.1.3/8.0.7/7.4.12/7.3.14の修正点

     では,上記セキュリティ・ホール以外の主な修正を見ていこう。

  • SET SESSION AUTHORIZATIONコマンドによってバックエンドがクラッシュすることのあるバグを修正(8.1/8.0/7.4/7.3)
  • トランザクション管理ファイル(pg_clog)の作成に失敗することのあるバグを修正(8.1/8.0/7.4/7.3)
  • まれにシステムカタログが破壊されるバグを修正(8.1/8.0)
  • ERROR: attempted to update invisible tupleというエラーが出て更新が失敗するバグを修正(8.1/8.0/7.4/7.3)
  • ビットマップスキャンと副問い合わせの組み合わせでのオプティマイザのバグの修正(8.1)
  • GROUP BYとマルチカラムインデックスの組み合わせでのオプティマイザのバグの修正(8.1/8.0)
  • 2月のPostgreSQL関連のセミナー

     例年この時期セミナーやコンファレンスが目白押しだが,PostgreSQLもその例外ではない。

    PostgreSQLコンファレンス2006

     2月17日(金),18日(土)の両日,NPO法人化したばかりの日本PostgreSQLユーザー会主催によるコンファレンスが都内品川で開催さ れる。

     毎年開催され,すっかりおなじにみなったこのコンファレンスだが,今 年もPostgreSQLの事例から,インターナルまで,幅広い話題のセミナーが開催 される。目玉は初来日のPostgreSQLコアメンバーJosh Berkus氏による 「PostgreSQL Directions 8.1 and beyond」であろう。また,2日目はコンファ レンス終了後懇親会も予定されているので,PostgreSQLコミュニティのキーメ ンバーと交流を深めることもできる。

     詳細はhttp://www.postgresql.jp/misc/seminar/2006-02-17_18/index.htmlにて。

    PostgreSQLエグゼクティブセミナー

     2月22日(水)都内品川駅近くのラフォーレ東京で,SRA OSS主催のPostgreSQLセミナーが開催される。す べての講演者を米国から招聘してのセミナーで,PostgreSQLのコアメンバーで あるBruce Momjian氏,Josh Berkus氏,そしてSun Mircosystems社からは Robert N. Lor氏がPostgreSQLに関係する最新情報を講演する。

     Bruce Momjian氏はPostgreSQL 8.1の情報,PostgreSQLコンファレンスでも講演するJosh Berkus氏は,氏が所属しているGreenplumが提供する注目のPostgreSQL並列化 ソリューション「BizGres MPP」,そしてRobert N. Lor氏は,PostgreSQLを正 式サポートすることになったSolaris環境でのPostgreSQLの利用に関する技術 的な話題を講演する予定である。

     詳細は http://www.sraoss.co.jp/event_seminar/2006/0222.php にて。

    ■著者紹介
    石井達夫(いしい・たつお)氏
    国際化の分野を中心にPostgreSQLの開発に参加。一方,本業でもPostgreSQL関連のプロダクトやサービスの企画・開発を統括し,PostgreSQLを使ったビジネスの可能性を追求している。著書に『PostgreSQL完全攻略ガイド』(技術評論社),『PHPxPostgreSQLで作る最強WWWシステム』(技術評論社),『PostgreSQL構築・運用ガイド』(日経BP,共著)などがある。日本PostgreSQLユーザ会会員。