IO Error occured at <except.c>:79 in xraise (IOError)

Hi,

after a long indexing run I got the following error. I have 149 MB space
left on the disk, the index is 311 MB large; could Ferret have tried to
use more than that for the optimizing? Or would that have resulted in a
different error message?

/usr/local/ruby-1.8.5/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/runner.rb:27:
/usr/local/ruby-1.8.5/lib/ruby/gems/1.8/gems/ferret-0.10.11/lib/ferret/index.rb:536:in
`optimize’: IO Error occured at <except.c>:79 in xraise (IOError)
Error occured in fs_store.c:226 - fso_flush_i
flushing src of length 1024

    from 

/usr/local/ruby-1.8.5/lib/ruby/gems/1.8/gems/ferret-0.10.11/lib/ferret/index.rb:536:in
optimize' from /usr/local/ruby-1.8.5/lib/ruby/1.8/monitor.rb:238:insynchronize’
from
/usr/local/ruby-1.8.5/lib/ruby/gems/1.8/gems/ferret-0.10.11/lib/ferret/index.rb:534:in
optimize' from ./vendor/plugins/acts_as_ferret/lib/class_methods.rb:235:inmanual_index_update’
from (eval):1
from
/usr/local/ruby-1.8.5/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
eval' from /usr/local/ruby-1.8.5/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/runner.rb:27 from /usr/local/ruby-1.8.5/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:ingem_original_require’
from
/usr/local/ruby-1.8.5/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3

On 10/12/06, Andreas S. [email protected] wrote:

Error occured in fs_store.c:226 - fso_flush_i
from ./vendor/plugins/acts_as_ferret/lib/class_methods.rb:235:in
from
/usr/local/ruby-1.8.5/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3

Hi Andreas,

I think it is most probably because it ran out of space during
indexing as you guessed. I’ll have to change that error message to a
friendlier one though. I’ll fix that in the next version. Let me know
if you get this problem even when you have more memory.

Cheers,
Dave

David B. wrote:

On 10/12/06, Andreas S. [email protected] wrote:

Error occured in fs_store.c:226 - fso_flush_i
from ./vendor/plugins/acts_as_ferret/lib/class_methods.rb:235:in
from
/usr/local/ruby-1.8.5/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3

Hi Andreas,

I think it is most probably because it ran out of space during
indexing as you guessed.

But there’s still 149 MB left, wouldn’t it have filled it up first
beforst giving up?

I’ll have to change that error message to a
friendlier one though. I’ll fix that in the next version. Let me know
if you get this problem even when you have more memory.

I will.

Thanks for the fast reply
Andreas

On 10/12/06, Andreas S. [email protected] wrote:

I think it is most probably because it ran out of space during
indexing as you guessed.

But there’s still 149 MB left, wouldn’t it have filled it up first
beforst giving up?

Perhaps I’m wrong but the single optimized file might have been larger
than 149Mb so it might never have been committed to the file system,
hence the amount of space left would stay at 149Mb. I don’t know
enough about file-systems to know if that is a plausible explanation.
The error is actually happening in the write system call. That was the
only place in FSDirectory where I didn’t print out the strerror value
so I’ve fixed that now. If it happens again it’ll tell you why.

Dave