Concurrency Problem in 0.11.3

Hi,

I’m having some strange/random crashes with ferret when using different
programs on the same index.

I created a script to reproduce the errors:

http://www.sig11.org/~seb/ferret_crash.rb

Usage:

In one terminal run: ruby ferret_crash.rb first
In another terminal: ruby ferret_crash.rb

Errors I usually get are but it is really random:

/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:542:in
`close’: End-of-File Error occured at <except.c>:93 in xraise (EOFError)
Error occured in store.c:216 - is_refill
current pos = 0, file length = 0

    from

/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:542:in
flush' from /usr/lib/ruby/1.8/monitor.rb:229:in synchronize’
from
/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:539:in
flush' from ferret_crash.rb:25:in create’
from ferret_crash.rb:58

==============================================================================

E/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:298:
[BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i486-linux]

==============================================================================

/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:542:in
`close’: IO Error occured at <except.c>:93 in xraise (IOError)
Error occured in fs_store.c:221 - fs_length
getting lenth of /tmp/libferrettest/_v4.fdx:

    from

/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:542:in
flush' from /usr/lib/ruby/1.8/monitor.rb:229:in synchronize’
from
/usr/lib/ruby/gems/1.8/gems/ferret-0.11.3/lib/ferret/index.rb:539:in
flush' from ferret_crash.rb:25:in create’
from ferret_crash.rb:58

I tried using the last trunk version but i didn’t help.

Thanks.

Seb


Sebastien Pahl - Rift Technologies
[email protected]

Hi Sebastien,

I’ve had the same segfault problems and I’m told these are now fixed in
subversion and will be in the next release.

As for your other problems, Ferret does not support multiple processes
writing to the same index. It’s recommended that you use a DRb service
to achieve this instead.

John.

On Mon, 2007-03-19 at 19:27 +0100, Sebastien Pahl wrote:

Hi,

I’m having some strange/random crashes with ferret when using
different
programs on the same index.


http://johnleach.co.uk

Thanks for the quick answer.
I tried it with the last svn release, the segfaults are gone.
I’ll have look at DRb.

John L. wrote:

I’ve had the same segfault problems and I’m told these are now fixed in
subversion and will be in the next release.

As for your other problems, Ferret does not support multiple processes
writing to the same index. It’s recommended that you use a DRb service
to achieve this instead.


Sebastien Pahl - Rift Technologies
[email protected]

Isn’t the ferret-write.lck supposed to take care of this problem?

John L. wrote:

… Ferret does not support multiple processes writing to the same index. …


Sebastien Pahl - Rift Technologies
[email protected]