Ferret Locking issues

Dave and all,

I run a medium RoR app using Ferret and acts_as_ferret. I get a lot of
lock errors. Not always but around 5% of all searches (aspecially during
peak periods). Here are the messages I get:

A NameError occurred in szukaj#index:
uninitialized constant Ferret::Index::Index::LockError
[RAILS_ROOT]/vendor/rails/activesupport/lib/active_support/dependencies.rb:478:in
const_missing' /home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:674:in ensure_reader_open’
/home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:383:in []' /usr/lib/ruby/1.8/monitor.rb:238:in synchronize’
/home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:382:in []' [RAILS_ROOT]/vendor/plugins/acts_as_ferret/lib/class_methods.rb:413:in find_id_by_contents’
/home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:371:in
search_each' /home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:370:in search_each’
/usr/lib/ruby/1.8/monitor.rb:238:in synchronize' /home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:366:in search_each’
[RAILS_ROOT]/vendor/plugins/acts_as_ferret/lib/class_methods.rb:411:in
find_id_by_contents' [RAILS_ROOT]/app/controllers/szukaj_controller.rb:38:in index’
[etc]

As you can see I use ferret 0.10.13.

I read:
http://rubyforge.org/pipermail/ferret-talk/2006-September/001184.html
but obviously it didn’t help much. Is it possible to disable locking
when searching? The index is updated once per week at most…

Hi!
On Thu, Jan 11, 2007 at 01:46:06PM +0100, W S wrote:

/home/user/.gems/gems/ferret-0.10.13/lib/ferret/index.rb:674:in
`ensure_reader_open’

this actually means that the LockError class could not be found in line
674, which is a rescue statement.

Replacing LockError with Lock::LockError in line 674 of index.rb should
help to
solve that. Then you’ll probably see what’s really going on. Please tell
us if this gets you any further.

Jens


webit! Gesellschaft für neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Krämer [email protected]
Schnorrstraße 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66