From: Tietew Date: 2005-05-18T23:39:57+09:00 Subject: [ruby-dev:26186] ruby_setenv dumps core with mod_ruby/1.4.2 Tietew です。 ruby/1.8.3 CVS snapshot で ruby_setenv() が core 吐くので報告です。 再現性はある(同じ状況で必ず core dump しはする)のですが再現条 件はつかめていません。 該当行では ENV['REQUEST_METHOD'] = 'GET' を行っています。 * Linux 2.4.27 * Ruby 1.8.3 (2005-05-17) * Apache/1.3.31 PHP/4.3.7 mod_ruby/1.2.4 Ruby/1.8.3 (2005-05-17) # gdb /usr/local/apache/bin/httpd /tmp/core (snip) #0 0x402134de in ruby_setenv (name=0x8279230 "REQUEST_METHOD", value=0x8279490 "GET") at hash.c:1858 1858 if (environ[i] != origenviron[i]) (gdb) bt #0 0x402134de in ruby_setenv (name=0x8279230 "REQUEST_METHOD", value=0x8279490 "GET") at hash.c:1858 #1 0x4021366e in env_aset (obj=1078256064, nm=1084399360, val=1084399340) at hash.c:1908 #2 0x401fd459 in rb_call0 (klass=1078256044, recv=1078256064, id=332, oid=332, argc=2, argv=0xbfff69d4, body=0x4044e134, nosuper=0) at eval.c:5483 #3 0x401fdf40 in rb_call (klass=1078256044, recv=1078256064, mid=332, argc=2, argv=0xbfff69d4, scope=0) at eval.c:5832 #4 0x401f7d72 in rb_eval (self=1084400340, n=0x4052d23c) at eval.c:3299 (snip) #28 0x401bd447 in ruby_handler_internal (iarg=0x8337dc4) at mod_ruby.c:1178 #29 0x401bd53a in ruby_handler (r=0x82bf5dc, handlers_arr=0x80de44c, mid=12801, run_all=0, flush=1) at mod_ruby.c:1228 #30 0x401bd5a5 in ruby_object_handler (r=0x82bf5dc) at mod_ruby.c:1246 #31 0x080746e9 in ap_invoke_handler () #32 0x0808b34c in process_request_internal () #33 0x0808b7ec in ap_internal_redirect () #34 0x401c4142 in request_internal_redirect (self=1084556400, uri=1084461840) at request.c:1333 #35 0x401fd443 in rb_call0 (klass=1078219764, recv=1084556400, id=11953, oid=11953, argc=1, argv=0xbfff9d24, body=0x40444648, nosuper=0) at eval.c:5480 (snip) #75 0x401bd447 in ruby_handler_internal (iarg=0x821891c) at mod_ruby.c:1178 #76 0x401bd53a in ruby_handler (r=0x82105ac, handlers_arr=0x80de44c, mid=12801, run_all=0, flush=1) at mod_ruby.c:1228 #77 0x401bd5a5 in ruby_object_handler (r=0x82105ac) at mod_ruby.c:1246 #78 0x080746e9 in ap_invoke_handler () #79 0x0808b34c in process_request_internal () #80 0x0808b3b6 in ap_process_request () #81 0x080819f0 in child_main () #82 0x08081c9a in make_child () #83 0x08082028 in perform_idle_server_maintenance () #84 0x0808268c in standalone_main () #85 0x08082cfc in main () #86 0x400b214f in __libc_start_main () from /lib/libc.so.6 (gdb) p origenviron $2 = (char **) 0xbffffedc (gdb) p (char**)environ $3 = (char **) 0x831df38 (gdb) p ((char**)environ)[i] $4 = 0x82948d8 "REQUEST_METHOD=POST" (gdb) p origenviron[i] Cannot access memory at address 0xc0000054 (gdb) p i $14 = 94 (gdb) p origenviron[0] $15 = 0xbfffff9c "PWD=(hidden)" (gdb) p origenviron[1] $16 = 0xbfffffba "SHLVL=2" (gdb) p origenviron[2] $17 = 0xbfffffc2 "_=/usr/local/apache/bin/httpd" (gdb) p origenviron[3] $18 = 0x0 (gdb) p origenviron[4] $19 = 0x10
(gdb) p ((char**)environ)[0] $20 = 0x82ece58 "CONTENT_LENGTH=61" (gdb) p ((char**)environ)[99] $42 = 0x82ea648 "GATEWAY_INTERFACE=CGI-Ruby/1.1" (gdb) p ((char**)environ)[100] $43 = 0x0 (gdb) p ((char**)environ)[101] $44 = 0x31
(gdb) p name $45 = 0x8279230 "REQUEST_METHOD" (gdb) p value $46 = 0x8279490 "GET" —[ Tietew ]—————————————————————————— メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA