ts <decoux / moulon.inra.fr> writes: > If you can give your complete configuration (apparently you run 1.6.7, > right ?) and your script to try to reproduce the segfault ? Guy: The following script, if run twice, segv's the second time. req = Apache::request req.status = Apache::HTTP_OK req.content_type = 'text/html' req.send_http_header def nil.empty? true end $stderr.puts "In t.rb" puts "Hello, world!" This is with ruby 1.6.7 (2002-08-01) mod_ruby 0.9.9 Apache 1.3.26 The full backtrace for this case is below. Is it possible that st_lookup is thinking it's using a strhash, rather than a numhash? #0 0x40191cd8 in main_arena () from /lib/libc.so.6 #1 0x402c06fa in st_lookup (table=0x81fdd30, key=0xc19 <Address 0xc19 out of bounds>, value=0xbfffd140) at st.c:253 #2 0x4026e895 in search_method (klass=1078135192, id=3097, origin=0xbfffd17c) at eval.c:250 #3 0x4026e8e1 in rb_get_method_body (klassp=0xbfffd1cc, idp=0xbfffd1bc, noexp=0xbfffd1c0) at eval.c:268 #4 0x402784b4 in rb_call (klass=1078135192, recv=4, mid=3097, argc=1, argv=0xbfffd1ec, scope=1) at eval.c:4582 #5 0x40278869 in rb_funcall (recv=4, mid=3097, n=1) at eval.c:4679 #6 0x40274b47 in rb_eval (self=1078124132, n=0x4042da7c) at eval.c:3049 #7 0x40271b63 in rb_eval (self=1078124132, n=0x4042dc98) at eval.c:2027 #8 0x4026f99c in eval_node (self=1078124132, node=0x4042dc98) at eval.c:1057 #9 0x40279c3d in rb_load (fname=1078124172, wrap=1) at eval.c:5258 #10 0x40279ea2 in rb_f_load (argc=2, argv=0xbfffdf4c) at eval.c:5306 #11 0x40277878 in call_cfunc (func=0x40279e60 <rb_f_load>, recv=1078133872, len=-1, argc=2, argv=0xbfffdf4c) at eval.c:4248 #12 0x40277e02 in rb_call0 (klass=1078201492, recv=1078133872, id=8473, argc=2, argv=0xbfffdf4c, body=0x40433c24, nosuper=1) at eval.c:4385 #13 0x40278614 in rb_call (klass=1078201492, recv=1078133872, mid=8473, argc=2, argv=0xbfffdf4c, scope=1) at eval.c:4605 #14 0x4027356c in rb_eval (self=1078133872, n=0x4042f8a4) at eval.c:2546 #15 0x40271b63 in rb_eval (self=1078133872, n=0x4042ff70) at eval.c:2027 #16 0x402781f8 in rb_call0 (klass=1078134792, recv=1078133872, id=10881, argc=0, argv=0xbfffec00, body=0x4042ff70, nosuper=0) at eval.c:4512 #17 0x40278614 in rb_call (klass=1078134792, recv=1078133872, mid=10881, argc=1, argv=0xbfffebfc, scope=1) at eval.c:4605 #18 0x402788e9 in rb_funcall2 (recv=1078133872, mid=10881, argc=1, argv=0xbfffebfc) at eval.c:4689 #19 0x4025a78a in protect_funcall0 (arg=3221220404) at mod_ruby.c:240 #20 0x402770ba in rb_protect (proc=0x4025a760 <protect_funcall0>, data=3221220404, state=0xbfffec90) at eval.c:4008 #21 0x4025a828 in rb_protect_funcall (recv=1078133872, mid=10881, state=0xbfffec90, argc=1) at mod_ruby.c:270 #22 0x4025bbcb in ruby_handler_0 (arg=0xbfffef18) at mod_ruby.c:890 #23 0x4025b8f5 in run_safely_0 (arg=0xbfffeea4) at mod_ruby.c:798 #24 0x40280287 in rb_thread_start_0 (fn=0x4025b8a0 <run_safely_0>, arg=0xbfffeea4, th_arg=0x82070a0) at eval.c:8376 #25 0x40280487 in rb_thread_create (fn=0x4025b8a0 <run_safely_0>, arg=0xbfffeea4) at eval.c:8428 #26 0x4025b968 in run_safely (safe_level=1, timeout=270, func=0x4025bb80 <ruby_handler_0>, arg=0xbfffef18, retval=0xbfffef14) at mod_ruby.c:817 #27 0x4025bd4f in ruby_handler (r=0x8204a1c, handlers_arr=0x80bab34, mid=10881, run_all=0, flush=1) at mod_ruby.c:944 #28 0x4025be2e in ruby_object_handler (r=0x8204a1c) at mod_ruby.c:964 #29 0x80550a9 in ap_invoke_handler () #30 0x806b4ff in process_request_internal () #31 0x806b572 in ap_process_request () #32 0x8061c96 in child_main () #33 0x8061f1a in make_child () #34 0x8061fd6 in startup_children () #35 0x806267d in standalone_main () #36 0x8062eec in main () #37 0x400a2baf in __libc_start_main () from /lib/libc.so.6 Thanks for looking at this. Dave