Project

General

Profile

Actions

Bug #4303

closed

Segmentation fault (using tarantula and hpricot)

Bug #4303: Segmentation fault (using tarantula and hpricot)

Added by markus (Markus Bengts) almost 15 years ago. Updated over 14 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2p160 (2011-01-16 revision 30579) [x86_64-darwin10.6.0]
Backport:
[ruby-core:34724]

Description

=begin
I get this this segmentation fault when running tarantula tests for a rails application. I don't know if the bug is in ruby or hpricot or something else. I cannot provide a small test case to reproduce it because to me it seems to be completely random at what point of the test run this happens. Sometimes all tests pass without a segmentation fault and sometimes it happens in the beginning of the test run or just at a random point during the test run.

This happens with both ruby 1.9.2p160 and ruby 1.9.2p136, but there is no problem with ruby 1.8.7.

I tried running it with gdb but gdb just says "No stack" after ruby has crashed. What do I need to do to get more information from gdb? This is what I tried:

export optflags="-O0 -ggdb"
rvm install ruby-1.9.2-head
rvm 1.9.2-head
bundle install
gdb --args ruby /Users/markus/.rvm/gems/ruby-1.9.2-head/bin/rake tarantula:test

...

483 of 509 links completed /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:33: [BUG] Segmentation fault
ruby 1.9.2p160 (2011-01-16 revision 30579) [x86_64-darwin10.6.0]

-- control frame ----------
c:0035 p:---- s:0148 b:0148 l:000147 d:000147 CFUNC :(null)
c:0034 p:---- s:0146 b:0146 l:000145 d:000145 CFUNC :scan
c:0033 p:0074 s:0141 b:0141 l:000140 d:000140 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:33
c:0032 p:0030 s:0134 b:0134 l:000133 d:000133 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:4
c:0031 p:0012 s:0128 b:0128 l:000121 d:000127 BLOCK /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:15
c:0030 p:0029 s:0126 b:0126 l:000125 d:000125 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/recording.rb:5
c:0029 p:0022 s:0122 b:0122 l:000121 d:000121 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:14
c:0028 p:0061 s:0117 b:0117 l:000116 d:000116 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:23
c:0027 p:0017 s:0110 b:0109 l:000099 d:000108 BLOCK /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:113
c:0026 p:---- s:0105 b:0105 l:000104 d:000104 FINISH
c:0025 p:---- s:0103 b:0103 l:000102 d:000102 CFUNC :each
c:0024 p:0017 s:0100 b:0100 l:000099 d:000099 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:111
c:0023 p:0085 s:0095 b:0095 l:000094 d:000094 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/link.rb:38
c:0022 p:0024 s:0091 b:0091 l:000090 d:000090 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:99
c:0021 p:0042 s:0086 b:0086 l:000085 d:000085 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:92
c:0020 p:0027 s:0082 b:0082 l:000072 d:000081 BLOCK /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:64
c:0019 p:---- s:0078 b:0078 l:000077 d:000077 FINISH
c:0018 p:---- s:0076 b:0076 l:000075 d:000075 CFUNC :times
c:0017 p:0056 s:0073 b:0073 l:000072 d:000072 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:60
c:0016 p:0047 s:0066 b:0066 l:000065 d:000065 METHOD test/tarantula/tarantula_test.rb:65
c:0015 p:0063 s:0062 b:0062 l:0023f0 d:0023f0 METHOD /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:680
c:0014 p:0010 s:0056 b:0056 l:001120 d:000055 BLOCK /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/testing/setup_and_teardown.rb:35
c:0013 p:0223 s:0054 b:0054 l:000053 d:000053 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:428
c:0012 p:0019 s:0045 b:0045 l:001120 d:001120 METHOD /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/testing/setup_and_teardown.rb:34
c:0011 p:0091 s:0039 b:0039 l:000020 d:000038 BLOCK /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:641
c:0010 p:---- s:0034 b:0034 l:000033 d:000033 FINISH
c:0009 p:---- s:0032 b:0032 l:000031 d:000031 CFUNC :each
c:0008 p:0026 s:0029 b:0029 l:000020 d:000028 BLOCK /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:635
c:0007 p:---- s:0026 b:0026 l:000025 d:000025 FINISH
c:0006 p:---- s:0024 b:0024 l:000023 d:000023 CFUNC :each
c:0005 p:0082 s:0021 b:0021 l:000020 d:000020 METHOD /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:634
c:0004 p:0188 s:0016 b:0016 l:000015 d:000015 METHOD /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:594
c:0003 p:0041 s:0007 b:0007 l:000fb8 d:000006 BLOCK /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:492
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000f58 d:000f58 TOP

-- Ruby level backtrace information ----------------------------------------
/Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:492:in block in autorun' /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:594:in run'
/Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:634:in run_test_suites' /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:634:in each'
/Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:635:in block in run_test_suites' /Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:635:in each'
/Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:641:in block (2 levels) in run_test_suites' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/testing/setup_and_teardown.rb:34:in run'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:428:in _run_setup_callbacks' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/testing/setup_and_teardown.rb:35:in block in run'
/Users/markus/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/minitest/unit.rb:680:in run' test/tarantula/tarantula_test.rb:65:in test_anonymous_browsing'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:60:in crawl' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:60:in times'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:64:in block in crawl' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:92:in do_crawl'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:99:in crawl_the_queue' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/link.rb:38:in crawl'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:111:in handle_link_results' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:111:in each'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/crawler.rb:113:in block in handle_link_results' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:23:in handle'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:14:in html_doc_without_stderr_noise' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/recording.rb:5:in stderr'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/tarantula-0.3.3/lib/relevance/tarantula/html_document_handler.rb:15:in block in html_doc_without_stderr_noise' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:4:in Hpricot'
/Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:33:in make' /Users/markus/.rvm/gems/ruby-1.9.2-head/gems/hpricot-0.8.3/lib/hpricot/parse.rb:33:in scan'

-- C level backtrace information -------------------------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

rake aborted!
Command failed with status (): [/Users/markus/.rvm/rubies/ruby-1.9.2-head/...]

(See full trace by running task with --trace)

Program exited with code 01.
(gdb) bt
No stack.
(gdb)
=end

Updated by sorah (Sorah Fukumori) almost 15 years ago Actions #1

  • Status changed from Open to Feedback

=begin
Could you try again at ruby-trunk without rvm?

See also: http://redmine.ruby-lang.org/wiki/ruby/HowtoReport
=end

Updated by markus (Markus Bengts) almost 15 years ago Actions #2

=begin
This turned out to be an issue with hpricot 0.8.3. Using an older
version of hpricot solved the problem. Sorry for spamming.
=end

Updated by tenderlovemaking (Aaron Patterson) almost 15 years ago Actions #3

  • Status changed from Feedback to Third Party's Issue
  • Priority changed from Normal to 3

=begin

=end

Actions

Also available in: PDF Atom