[PHP-users 6813] Re: PHP4.2.0RC2 のバグ?( mb_output_handler とxslt_process )

Rui Hirokawa php-users@php.gr.jp
Thu, 11 Apr 2002 00:43:48 +0900


廣川です。

CGI版でためしてみましたが、
私のところでも mb_output_handlerがらみでコアダンプしました。

Vine 2.1.5
Linux 2.2.19
glibc 2.1.3
PHP 4.2.0RC (from CVS) CGI

#0  0x2ac9cbc7 in strlen (str=0x0) at ../sysdeps/i386/strlen.c:27
#1  0x0806f472 in zif_mb_output_handler (ht=2, return_value=0x81eb1ac, 
    this_ptr=0x0, return_value_used=1) at mbstring.c:1479
#2  0x081004f2 in call_user_function_ex (function_table=0x81ac7f0, 
    object_pp=0x0, function_name=0x81afb6c, retval_ptr_ptr=0x7ffff4d4, 
    param_count=2, params=0x7ffff488, no_separation=1, symbol_table=0x0)
    at zend_execute_API.c:532
#3  0x0806a90c in php_end_ob_buffer (send_buffer=1 '\001', just_flush=0 '\000')
    at output.c:175
#4  0x0806ac5f in php_end_ob_buffers (send_buffer=1 '\001') at output.c:264
#5  0x08062ed8 in php_request_shutdown (dummy=0x0) at main.c:763
#6  0x08061a11 in main (argc=3, argv=0x7ffffad4) at cgi_main.c:834
#7  0x2ac5698b in __libc_start_main (main=0x8060f3c <main>, argc=3, 
    argv=0x7ffffad4, init=0x805f948 <_init>, fini=0x81469ec <_fini>, 
    rtld_fini=0x2aab5ea0 <_dl_fini>, stack_end=0x7ffffacc)
    at ../sysdeps/generic/libc-start.c:92

平日はあまり時間がとれませんが、
週末にもう少し詳しくおってみようと思います。

On Wed, 10 Apr 2002 12:06:46 +0900
Yasuo Ohgaki <yohgaki@yahoo.co.jp> wrote:

> 大垣です。
> 
> 私の環境では何故か再現しないのでどうしようもありません。。
> # 廣川さんの環境では再現しませんか?
> 
> SHIMOOKA Hideyuki wrote:
> > 下岡です。
> > 
> > 大垣さん、ありがとうございます。
> > 昨日試した結果をご報告します。
> > 
> > ---- Yasuo Ohgakiさん曰く...
> > 
> > 
> >>ソースを全く見ていないので変換後のファイルを添付
> >>しておきます。
> > 
> > 
> > 確かに期待している出力ですね。
> > 
> > 
> > 
> >>1) PHP 4.2.0-dev (CVS)版を試す。
> >>2) Sablotronのバージョンを0.82にする。
> > 
> > 
> > 以下の組み合わせで試してみましたが、backtraceの結果は同じ
> > (zif_mb_output_handlerでthis_ptr=0x0)となってしまいま
> > した。
> > 
> > ・PHP4.2.0-RC2+Sablotron0.90
> > ・PHP4.3.0-dev(annnonymous cvsでソースをcheckout php4)+
> >  Sablotron0.90
> 
> 0.90も大丈夫と思いますが、私の記憶が正しければPHP 4.2.0のxsltモ
> ジュールは0.8x対応と言う事らしいので、0.8xのSablotronも試して見
> てはどうでしょうか?(私は0.82を使いました)
> 
> > また、PHPのconfigureオプションとして、
> > 
> > --with-apxs=/usr/local/apache/bin/apxs \
> > --enable-xslt \
> > --with-xslt-sablot=/usr/local \
> > --with-expat-dir=/usr/local \
> > --enable-mbstring \
> > --enable-mbstr-enc-trans \
> > --enable-debug
> > 
> > のみとしてみましたが、同様の結果でした。
> 
> 困りましたね。他のモジュールのせいかもと言いたかったところですが、、、
> 
> > 
> > ちなみに、
> > 
> > ・RedHat7.2(製品版)
> > ・PHP4.2.0-RC2
> > ・expat1.95.2(ソースからconfigure、make install)
> > ・Sablotron0.90(ソースからconfigure、make install)
> > 
> > を上のconfigureオプションでインストールして実行じてみると、
> > 同じくSegmentation faultが発生しましたが、backtraceは以下の
> > ようになりました。
> > 
> > ----ここから
> > 
> > # gdb /usr/local/apache/bin/httpd 
> > GNU gdb Red Hat Linux 7.x (5.0rh-15) (MI_OUT)
> > Copyright 2001 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB.  Type "show warranty" for details.
> > This GDB was configured as "i386-redhat-linux"...
> > (gdb) run -X
> > Starting program: /usr/local/apache/bin/httpd -X
> > 
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x4010fc71 in strlen () from /lib/i686/libc.so.6
> > (gdb) bt
> > #0  0x4010fc71 in strlen () from /lib/i686/libc.so.6
> > #1  0x405c2a84 in zif_mb_output_handler (ht=2, return_value=0x80fb124, 
> >     this_ptr=0x0, return_value_used=1) at mbstring.c:1479
> > #2  0x4057eceb in call_user_function_ex (function_table=0x80c3478, 
> >     object_pp=0x0, function_name=0x80e8ae4, retval_ptr_ptr=0xbfffee40, 
> >     param_count=2, params=0xbfffede8, no_separation=1, symbol_table=0x0)
> >     at zend_execute_API.c:532
> > #3  0x405a4e40 in php_end_ob_buffer (send_buffer=1 '\001', just_flush=0 '\000')
> >     at output.c:175
> > #4  0x405a5273 in php_end_ob_buffers (send_buffer=1 '\001') at output.c:264
> > #5  0x4059a33a in php_request_shutdown (dummy=0x0) at main.c:763
> > #6  0x405966d6 in apache_php_module_main (r=0x80e2ac4, display_source_mode=0)
> >     at sapi_apache.c:96
> > #7  0x405974cc in send_php (r=0x80e2ac4, display_source_mode=0, 
> >     filename=0x80e35fc "/home/shimooka/public_html/xslt_process3.php")
> >     at mod_php4.c:575
> > #8  0x40597539 in send_parsed_php (r=0x80e2ac4) at mod_php4.c:590
> > #9  0x08053cd7 in ap_invoke_handler () at eval.c:41
> > #10 0x08068557 in process_request_internal () at eval.c:41
> > #11 0x080685b8 in ap_process_request () at eval.c:41
> > #12 0x0805f80d in child_main () at eval.c:41
> > #13 0x0805f9b8 in make_child () at eval.c:41
> > #14 0x0805fb2c in startup_children () at eval.c:41
> > #15 0x080601a4 in standalone_main () at eval.c:41
> > #16 0x080609f7 in main () at eval.c:41
> > ---Type <return> to continue, or q <return> to quit---
> > #17 0x400a5507 in __libc_start_main (main=0x8060660 <main>, argc=2, 
> >     ubp_av=0xbffff844, init=0x804e270 <_init>, fini=0x807db40 <_fini>, 
> >     rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbffff83c)
> >     at ../sysdeps/generic/libc-start.c:129
> > (gdb) 
> > 
> > ----ここまで
> > 
> 
> 忙しいので、自分で再現する状況を試行錯誤する事ができません。。。
> 
> --
> Yasuo Ohgaki
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users


-- 
-----------------------------------------------------
Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
             <hirokawa@php.net>