Bugs: Browse | Submit New | Admin

[#21610] rcov 0.8 crashes when running inside big Rails projects.

Date:
2008-08-19 19:10
Priority:
3
Submitted By:
Federico Builes (febuiles)
Assigned To:
Nobody (None)
Category:
None
State:
Open
Summary:
rcov 0.8 crashes when running inside big Rails projects.

Detailed description
When I run rcov on small projects it manages to end, but on medium/big Rails projects it crashes with the following
errors:

$ rcov --version
rcov 0.8.1.2 2007-11-22
federico@korobushka ~/programacion/vom
$ ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-darwin9.4.0]
federico@korobushka ~/programacion/vom
$ rake spec:rcov
(in /Users/federico/programacion/vom)
........................................................................................................................
........................................................................................................................
....../usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/inflector.rb:283: [BUG] rb_gc_mark():
unknown data type 0x31(0x2521720) non object
ruby 1.8.6 (2008-08-11) [i686-darwin9.4.0]

$ rake spec:rcov --trace
(in /Users/federico/programacion/vom)
** Invoke spec:rcov (first_time)
** Invoke spec:clobber_rcov (first_time)
** Execute spec:clobber_rcov
** Execute spec:rcov
........................................................................................................................
........................................................................................................................
....../usr/local/lib/ruby/1.8/timeout.rb:53: [BUG] rb_gc_mark(): unknown data type 0x31(0x2521720) non object
ruby 1.8.6 (2008-08-11) [i686-darwin9.4.0]

rake aborted!
Command /usr/local/bin/ruby -I"/usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.4/lib" -S rcov --exclude
"spec/*,gems/*" --rails -o "coverage" "/usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.4/bin/spec"
-- "spec/controllers/access_control_spec.rb" "spec/controllers/authenticated_system_spec.rb"
"spec/controllers/pages_controller_spec.rb" "spec/controllers/sessions_controller_spec.rb"
"spec/controllers/translations_controller_spec.rb" "spec/controllers/users_controller_spec.rb"
"spec/helpers/application_helper_spec.rb" "spec/helpers/translations_helper_spec.rb"
"spec/helpers/users_helper_spec.rb" "spec/models/pages_spec.rb" "spec/models/search_spec.rb"
"spec/models/translation_spec.rb" "spec/models/user_spec.rb" --options
"/Users/federico/programacion/vom/spec/spec.opts" failed
/usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.4/lib/spec/rake/spectask.rb:184:in `define'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1003:in `verbose'
/usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.4/lib/spec/rake/spectask.rb:153:in `define'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1931:in `invoke_task'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
/usr/local/bin/rake:19:in `load'
/usr/local/bin/rake:19

If you need anything else please let me know.

Add A Comment: Notepad

Please login


Followup

Message
Date: 2008-08-29 15:07
Sender: Tom Copeland

Cool, thanks for confirming!   I still wonder how that problem
is happening... seems like that struct is getting created with
a bad array size.  Should dig some more.... but nice to have
it working in the meantime...
Date: 2008-08-29 15:00
Sender: Federico Builes

Tom: That last patch seems to fix it, thanks!
Let's hope Mauricio can take a look at it.
Date: 2008-08-29 02:33
Sender: Tom Copeland

OK, here's a slightly better patch that checks for buffer
overruns:

http://tomcopeland.blogs.com/juniordeveloper/2008/08/rcov-crashin
g-w.html

Still not perfect, but better, I think...
Date: 2008-08-26 02:07
Sender: Tom Copeland

Hi Federico -

Hmmm.... good point, I didn't run the tests after making that
change.... hm.  I'll see if I can do that.

Thanks,

tom
Date: 2008-08-25 21:57
Sender: Federico Builes

Tom: Thanks for the suggestion. Sadly, removing that line breaks
3 of rcov tests
and it produces bogus information on the final report (reporting
lines as
untested and stuff that doesn't appear when running rcov on each
file).
Date: 2008-08-25 21:46
Sender: Tom Copeland

FWIW, I found a sorta/kinda "fix" for it, details
here:

http://tomcopeland.blogs.com/juniordeveloper/2008/08/rcov-crashin
g-w.html

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

No Changes Have Been Made to This Item