Yikes! I found a way to crash my sup!
I''m running sup 0.8.1 (sourced from whatever''s current on
rubygems.org, not a git branch), and can get sup to crash on specific searches.
I took a little time to poke around in the sup source to try and get an idea
what was going on. I''m led to believe this is because I added a source
in the past that I later deleted -- but all of the mesages are still in the
index. So, when certain searches turn up results that are in that deleted
source, the sup index fails to reference the message source in Redwood::Index.
Is there a way to delete a source without having to re-index everything?
So, I figured I might find a way to search the index for any documents whose
source id is the same as the deleted one and remove them from the index, but am
having a hard time finding a way to iterate over all documents in the index (no
search query). Is there a simple way to iterate over all messages?
Here''s some example crash output:
--- RuntimeError from thread: load threads for thread-index-mode
invalid source 1
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:403:in
`build_message''
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:399:in
`build_message''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:297:in
`each_id_by_date''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/thread.rb:330:in `call''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/thread.rb:330:in
`load_n_threads''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:297:in
`each_id_by_date''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:296:in `each''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/index.rb:296:in
`each_id_by_date''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/thread.rb:326:in
`load_n_threads''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/modes/thread-index-mode.rb:620:in
`__unprotected_load_n_threads''
(eval):12:in `load_n_threads''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/modes/thread-index-mode.rb:604:in
`load_n_threads_background''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup.rb:71:in
`reporting_thread''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup.rb:69:in `initialize''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup.rb:69:in `new''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup.rb:69:in
`reporting_thread''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/modes/thread-index-mode.rb:603:in
`load_n_threads_background''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/modes/thread-index-mode.rb:673:in
`__unprotected_load_threads''
(eval):12:in `load_threads''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/lib/sup/modes/search-results-mode.rb:34:in
`spawn_from_query''
/usr/lib/ruby/gems/1.8/gems/sup-0.8.1/bin/sup:270
/usr/bin/sup:19:in `load''
/usr/bin/sup:19
Thanks,
jonathan