Hi,

When running the Rails tests, one of the tests failed with the  
following trace:

ruby:~/rails/actionpack# ruby test/controller/render_test.rb --name / 
test_should_render_html_formatted_partial_with_rjs_and_js_format/
Loaded suite test/controller/render_test
Started
-- control frame ----------
c:0045 p:0009 s:0172 b:0170 l:0019ac d:000169 BLOCK  test/controller/ 
render_test.rb:157
c:0044 p:---- s:0171 b:0171 l:000170 d:000170 FINISH :[]=
c:0043 p:---- s:0169 b:0169 l:000168 d:000168 CFUNC  :call
c:0042 p:0060 s:0166 b:0166 l:00219c d:000165 BLOCK  /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:131
c:0041 p:---- s:0167 b:0167 l:000166 d:000166 FINISH :any?
c:0040 p:---- s:0165 b:0165 l:000164 d:000164 CFUNC  :call
c:0039 p:0063 s:0162 b:0162 l:000156 d:000161 BLOCK  /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:156
c:0038 p:---- s:0162 b:0162 l:000161 d:000161 FINISH :to_s
c:0037 p:---- s:0160 b:0160 l:000159 d:000159 CFUNC  :each
c:0036 p:0008 s:0157 b:0157 l:000156 d:000156 METHOD /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:150
c:0035 p:0091 s:0153 b:0153 l:000152 d:000152 METHOD /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:107
c:0034 p:0007 s:0147 b:0147 l:0019ac d:0019ac METHOD test/controller/ 
render_test.rb:155
c:0033 p:0042 s:0144 b:0144 l:000143 d:000143 METHOD /root/rails/ 
actionpack/lib/action_controller/base.rb:1158
c:0032 p:0039 s:0141 b:0141 l:000140 d:000140 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:697
c:0031 p:0024 s:0134 b:0134 l:000133 d:000133 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:689
c:0030 p:0239 s:0131 b:0131 l:000130 d:000130 METHOD /root/rails/ 
actionpack/lib/action_controller/benchmarking.rb:66
c:0029 p:0007 s:0126 b:0126 l:000125 d:000125 METHOD /root/rails/ 
actionpack/lib/action_controller/rescue.rb:199
c:0028 p:0069 s:0122 b:0122 l:000121 d:000121 METHOD /root/rails/ 
actionpack/lib/action_controller/base.rb:524
c:0027 p:0023 s:0115 b:0115 l:000114 d:000114 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:685
c:0026 p:0029 s:0108 b:0108 l:000107 d:000107 METHOD /root/rails/ 
actionpack/lib/action_controller/session_management.rb:123
c:0025 p:0010 s:0101 b:0100 l:000099 d:000099 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:15
c:0024 p:0240 s:0096 b:0096 l:000095 d:000095 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:393
c:0023 p:0050 s:0089 b:0089 l:000088 d:000088 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:369
c:0022 p:---- s:0082 b:0082 l:000081 d:000081 FINISH :[]=
c:0021 p:---- s:0080 b:0080 l:000079 d:000079 CFUNC  :send!
c:0020 p:0065 s:0072 b:0071 l:000070 d:000070 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:399
c:0019 p:0011 s:0063 b:0063 l:000062 d:000062 METHOD test/controller/ 
render_test.rb:440
c:0018 p:0039 s:0060 b:0060 l:000059 d:000059 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testcase.rb:76
c:0017 p:0015 s:0055 b:0055 l:000049 d:000054 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:34
c:0016 p:---- s:0055 b:0055 l:000054 d:000054 FINISH :proc
c:0015 p:---- s:0053 b:0053 l:000052 d:000052 CFUNC  :each
c:0014 p:0026 s:0050 b:0050 l:000049 d:000049 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:33
c:0013 p:0015 s:0045 b:0045 l:000039 d:000044 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:34
c:0012 p:---- s:0045 b:0045 l:000044 d:000044 FINISH :%
c:0011 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC  :each
c:0010 p:0026 s:0040 b:0040 l:000039 d:000039 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:33
c:0009 p:0128 s:0035 b:0035 l:002404 d:002404 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/testrunnermediator.rb:46
c:0008 p:0008 s:0026 b:0026 l:000025 d:000025 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/console/testrunner.rb:67
c:0007 p:0023 s:0023 b:0023 l:000022 d:000022 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/console/testrunner.rb:41
c:0006 p:0026 s:0020 b:0020 l:000019 d:000019 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/testrunnerutilities.rb:29
c:0005 p:0051 s:0015 b:0015 l:000014 d:000014 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/autorunner.rb:216
c:0004 p:0070 s:0011 b:0011 l:000010 d:000010 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/autorunner.rb:12
c:0003 p:0041 s:0003 b:0002 l:002694 d:000001 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit.rb:278
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
test/controller/render_test.rb:157: -- control frame ----------
c:0045 p:0009 s:0172 b:0170 l:0019ac d:000169 BLOCK  test/controller/ 
render_test.rb:157
c:0044 p:---- s:0171 b:0171 l:000170 d:000170 FINISH :[]=
c:0043 p:---- s:0169 b:0169 l:000168 d:000168 CFUNC  :call
c:0042 p:0060 s:0166 b:0166 l:00219c d:000165 BLOCK  /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:131
c:0041 p:---- s:0167 b:0167 l:000166 d:000166 FINISH :any?
c:0040 p:---- s:0165 b:0165 l:000164 d:000164 CFUNC  :call
c:0039 p:0063 s:0162 b:0162 l:000156 d:000161 BLOCK  /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:156
c:0038 p:---- s:0162 b:0162 l:000161 d:000161 FINISH :to_s
c:0037 p:---- s:0160 b:0160 l:000159 d:000159 CFUNC  :each
c:0036 p:0008 s:0157 b:0157 l:000156 d:000156 METHOD /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:150
c:0035 p:0091 s:0153 b:0153 l:000152 d:000152 METHOD /root/rails/ 
actionpack/lib/action_controller/mime_responds.rb:107
c:0034 p:0007 s:0147 b:0147 l:0019ac d:0019ac METHOD test/controller/ 
render_test.rb:155
c:0033 p:0042 s:0144 b:0144 l:000143 d:000143 METHOD /root/rails/ 
actionpack/lib/action_controller/base.rb:1158
c:0032 p:0039 s:0141 b:0141 l:000140 d:000140 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:697
c:0031 p:0024 s:0134 b:0134 l:000133 d:000133 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:689
c:0030 p:0239 s:0131 b:0131 l:000130 d:000130 METHOD /root/rails/ 
actionpack/lib/action_controller/benchmarking.rb:66
c:0029 p:0007 s:0126 b:0126 l:000125 d:000125 METHOD /root/rails/ 
actionpack/lib/action_controller/rescue.rb:199
c:0028 p:0069 s:0122 b:0122 l:000121 d:000121 METHOD /root/rails/ 
actionpack/lib/action_controller/base.rb:524
c:0027 p:0023 s:0115 b:0115 l:000114 d:000114 METHOD /root/rails/ 
actionpack/lib/action_controller/filters.rb:685
c:0026 p:0029 s:0108 b:0108 l:000107 d:000107 METHOD /root/rails/ 
actionpack/lib/action_controller/session_management.rb:123
c:0025 p:0010 s:0101 b:0100 l:000099 d:000099 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:15
c:0024 p:0240 s:0096 b:0096 l:000095 d:000095 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:393
c:0023 p:0050 s:0089 b:0089 l:000088 d:000088 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:369
c:0022 p:---- s:0082 b:0082 l:000081 d:000081 FINISH :[]=
c:0021 p:---- s:0080 b:0080 l:000079 d:000079 CFUNC  :send!
c:0020 p:0065 s:0072 b:0071 l:000070 d:000070 METHOD /root/rails/ 
actionpack/lib/action_controller/test_process.rb:399
c:0019 p:0011 s:0063 b:0063 l:000062 d:000062 METHOD test/controller/ 
render_test.rb:440
c:0018 p:0039 s:0060 b:0060 l:000059 d:000059 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testcase.rb:76
c:0017 p:0015 s:0055 b:0055 l:000049 d:000054 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:34
c:0016 p:---- s:0055 b:0055 l:000054 d:000054 FINISH :proc
c:0015 p:---- s:0053 b:0053 l:000052 d:000052 CFUNC  :each
c:0014 p:0026 s:0050 b:0050 l:000049 d:000049 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:33
c:0013 p:0015 s:0045 b:0045 l:000039 d:000044 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:34
c:0012 p:---- s:0045 b:0045 l:000044 d:000044 FINISH :%
c:0011 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC  :each
c:0010 p:0026 s:0040 b:0040 l:000039 d:000039 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/testsuite.rb:33
c:0009 p:0128 s:0035 b:0035 l:002404 d:002404 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/testrunnermediator.rb:46
c:0008 p:0008 s:0026 b:0026 l:000025 d:000025 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/console/testrunner.rb:67
c:0007 p:0023 s:0023 b:0023 l:000022 d:000022 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/console/testrunner.rb:41
c:0006 p:0026 s:0020 b:0020 l:000019 d:000019 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/ui/testrunnerutilities.rb:29
c:0005 p:0051 s:0015 b:0015 l:000014 d:000014 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/autorunner.rb:216
c:0004 p:0070 s:0011 b:0011 l:000010 d:000010 METHOD /usr/local/lib/ 
ruby/1.9.0/test/unit/autorunner.rb:12
c:0003 p:0041 s:0003 b:0002 l:002694 d:000001 BLOCK  /usr/local/lib/ 
ruby/1.9.0/test/unit.rb:278
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
131:in `call'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
131:in `block in custom'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
156:in `call'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
156:in `block in respond'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
150:in `each'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
150:in `respond'"
DBG> : "/root/rails/actionpack/lib/action_controller/mime_responds.rb: 
107:in `respond_to'"
DBG> : "test/controller/render_test.rb:155:in  
`respond_to_partial_as_rjs'"
DBG> : "/root/rails/actionpack/lib/action_controller/base.rb:1158:in  
`perform_action'"
DBG> : "/root/rails/actionpack/lib/action_controller/filters.rb:697:in  
`call_filters'"
DBG> : "/root/rails/actionpack/lib/action_controller/filters.rb:689:in  
`perform_action_with_filters'"
DBG> : "/root/rails/actionpack/lib/action_controller/benchmarking.rb: 
66:in `perform_action_with_benchmark'"
DBG> : "/root/rails/actionpack/lib/action_controller/rescue.rb:199:in  
`perform_action_with_rescue'"
DBG> : "/root/rails/actionpack/lib/action_controller/base.rb:524:in  
`process'"
DBG> : "/root/rails/actionpack/lib/action_controller/filters.rb:685:in  
`process_with_filters'"
DBG> : "/root/rails/actionpack/lib/action_controller/ 
session_management.rb:123:in `process_with_session_management_support'"
DBG> : "/root/rails/actionpack/lib/action_controller/test_process.rb: 
15:in `process_with_test'"
DBG> : "/root/rails/actionpack/lib/action_controller/test_process.rb: 
393:in `process'"
DBG> : "/root/rails/actionpack/lib/action_controller/test_process.rb: 
369:in `get'"
DBG> : "/root/rails/actionpack/lib/action_controller/test_process.rb: 
399:in `send!'"
DBG> : "/root/rails/actionpack/lib/action_controller/test_process.rb: 
399:in `xml_http_request'"
DBG> : "test/controller/render_test.rb:440:in  
`test_should_render_html_formatted_partial_with_rjs_and_js_format'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testcase.rb:76:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:34:in `block  
in run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:33:in `each'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:33:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:34:in `block  
in run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:33:in `each'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/testsuite.rb:33:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/ui/testrunnermediator.rb: 
46:in `run_suite'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/ui/console/testrunner.rb: 
67:in `start_mediator'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/ui/console/testrunner.rb: 
41:in `start'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/ui/testrunnerutilities.rb: 
29:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/autorunner.rb:216:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit/autorunner.rb:12:in `run'"
DBG> : "/usr/local/lib/ruby/1.9.0/test/unit.rb:278:in `block in <top  
(required)>'"
-- backtrace of native function call (Use addr2line) --
0x80ee535
0x810ce63
0x810cf2b
0x80e543c
0x80e54e1
0x80e57c1
0x80ecb39
0x80e86ae
0x80ebf74
0x80ec697
0x80ec97e
0x8060824
0x80e4abe
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x80ec97e
0x8060824
0x80e4abe
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x805b1fe
0x80f623f
0x8059cd1
0x80f7375
0x80ecd73
0x80e86ae
0x80ebf74
0x80ed37a
0x805b6b8
0x805b8c5
0x80e4abe
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x805b1fe
0x80f623f
0x8059cd1
0x80f7375
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x805b1fe
0x80f623f
0x8059cd1
0x80f7375
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x80ec97e
0x806068a
0x805ae0a
0x805e2cf
0x805e3cc
0x805e809
0x805ea08
0x8058671
0xb7d5eea8
0x8058581
-------------------------------------------------------
[BUG] invalid dfp
ruby 1.9.0 (2007-12-25) [i686-linux]


I've tried to create a limited test case that reproduces this bug. It  
does not trigger the exact same bug, because it segfaults, but i  
suspect it is triggered by the same issue. The test code is the  
following:

-------------------------------------------------------
#!/usr/bin/env ruby

class Controller

   def respond_to(&block)
     responder = Responder.new
     block.call(responder)
     responder.respond
   end

   def test_for_bug
     respond_to do |format|
       format.js do
         puts "in test"
         render do |obj|
           puts obj
         end
       end
     end
   end

   def render(&block)
     puts "in render"
   end

end

class Responder

   def method_missing(symbol, &block)
     @response = Proc.new do
       puts 'in method missing'
       block.call
     end
   end

   def respond
     @response.call
   end

end

t = Controller.new
t.test_for_bug
-------------------------------------------------------

When this is run, it fails with the following trace:

ruby:~# ruby bugtest.rb
in method missing
in test
bugtest.rb:15: -- control frame ----------
c:0012 p:0017 s:0026 b:0025 l:001afc d:000024 BLOCK  bugtest.rb:15
c:0011 p:---- s:0026 b:0026 l:000025 d:000025 FINISH :write
c:0010 p:---- s:0024 b:0024 l:000023 d:000023 CFUNC  :call
c:0009 p:0019 s:0021 b:0021 l:001be4 d:000020 BLOCK  bugtest.rb:33
c:0008 p:---- s:0022 b:0022 l:000021 d:000021 FINISH :remove_const
c:0007 p:---- s:0020 b:0020 l:000019 d:000019 CFUNC  :call
c:0006 p:0008 s:0017 b:0017 l:000016 d:000016 METHOD bugtest.rb:38
c:0005 p:0034 s:0014 b:0014 l:000013 d:000013 METHOD bugtest.rb:8
c:0004 p:0007 s:0009 b:0009 l:001afc d:001afc METHOD bugtest.rb:12
c:0003 p:0037 s:0006 b:0006 l:000005 d:000005 TOP    bugtest.rb:44
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
DBG> : "bugtest.rb:33:in `call'"
DBG> : "bugtest.rb:33:in `block in method_missing'"
DBG> : "bugtest.rb:38:in `call'"
DBG> : "bugtest.rb:38:in `respond'"
DBG> : "bugtest.rb:8:in `respond_to'"
DBG> : "bugtest.rb:12:in `test_for_bug'"
DBG> : "bugtest.rb:44:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x80ee535
0x810ce63
0x810cf2b
0x80be4e0
0xb7fcc440
0x80e5267
0x80e54e1
0x80e57c1
0x80ecb39
0x80e86ae
0x80ebf74
0x80ec697
0x80ec97e
0x8060824
0x80e4abe
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec697
0x80ec97e
0x8060824
0x80e4abe
0x80ecd73
0x80e86ae
0x80ebf74
0x80ec2ab
0x805ab19
0x805ea00
0x8058671
0xb7e35ea8
0x8058581
-------------------------------------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-12-25) [i686-linux]

Aborted
ruby:~#

I know this a lot of information, but hopefully someone with more  
insight in this can solve this issue.

-- 
Regards,

Dirkjan Bussink