[PHP-users 11294] Re: PHP4.2.3のエンバグ(was: Formの配列変数)

Masaki Fujimoto php-users@php.gr.jp
Wed, 06 Nov 2002 02:12:46 +0900


とりあえず、ふじもとです。

> PHP4.2.3で致命的な、単純なプログラムで発現するようなバグが結構報告されて
> ますが、今回のバージョンでこれだけエンバグしてしまった、かつ、そのバグが
> 残ったままリリースされてしまったのはどういう理由からなのでしょうか?
> ちょっと気になってます。

まず、例の--enable-mbstr-enc-transが有効な場合にformの値が...というバグ
というかデグレードは、PHP 4.2.2リリース後、4.2.3リリース前にbug #16985で
報告された

foo.php?a=0&b&c=0

というリクエストを正しく扱えないという問題を修正した時点で発生しています。
これが何故か、という点についてはちょっとパスです。

で、問題の何故4.2.3リリース前にこれに気づかなかったか、という点について
ですが、突き詰めるとテストが足りなかったとしか申し上げようがないです。が、
さらにその要因を考えて見ると:

- 4.2.3はリリースの必要性すら議論されたほどで、あまり開発する立場的には
  「重要な」リリースとみなされていなかった(気がします)
- メンテナンスリリースというせいか、安心しきっていてテストがそれほど念入
  りに行われなかった(僕も...)
- --enable-mbstr-enc-transオプションは、モジュールのon/offとは異なる少し
  位置付けが特殊なオプションなのでテストスクリプトに書きにくかった
  (4.3.0からはiniオプションになったのでテストも簡単です)

等が挙げられるかと思います。さらには

http://ns1.php.gr.jp/pipermail/php-users/2002-August/009478.html

のように大垣さんがアナウンスしてくださった訳ですが、RC(しかもメンテナン
スリリースの)と聞くと、どうしても開発に関わっていらっしゃらない方は興味
が湧きにくくなってしまって、従ってあんまり試されないまま...というのも要
因の一つかもしれません(そして僕はいつも--enable-mbstr-enc-transしないの
で気づかず)。

# あくまで推測ですが

まぁハインリッヒさんに聞くまでもなくこうした事故(?)の影には300+29の小さ
な問題が(多分)あり、かといってテストも商用ソフトウェア開発のような厳密な
ものは難しいと思うわけで、結局はテストスクリプトによるテストとpreもしく
はRCリリースを人海戦術でチェックしていくしかないのかな、と考えています。

で、http://qa.php.net/ なるものがあるわけですが、mbstr-enc-transのような
本家の人々にはあまり縁の無いオプションはあまりテストされない、と。

というわけで今度RCが出たら、より良いリリースのために皆様どうぞご協力よろ
しくお願いいたしますm(_ _)m

ちなみに4.3.0では小泉さんの素晴らしいご活躍によって、4.2.3とは比較になら
ないほど念入りにテストが行われていると思いますので今度は大丈夫かと思いま
す。まぁその分変更点も多いので微妙といえば微妙ですが:)

こんな感じですが、外してるようなきもします。いかがでしょうか?

--
藤本 真樹

アストラザスタジオ
fujimoto@studio.co.jp
fujimoto@php.net