Hi,
I''m having trouble with ferret and AAF blowing up with a NoMemoryError.
Sometimes when I add documents inside my rails app. Ferret starts
consuming huge amounts of memory. I''m on a machine with 2GB of memory
and it still runs out of memory. Sometimes I''m able to run
MyObject.rebuild_index and the memory doesn''t move up at all. However,
sometimes it blows up horribly with a NoMemoryError. I''m running it
from the script\console.
Here is the stack trace from runnning MyObject.rebuild_index
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret/index.rb:277
:in `add_document'': failed to allocate memory (NoMemoryError)
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret
/index.rb:277:in `<<''
from D:/dev/ruby/lib/ruby/1.8/monitor.rb:229:in `synchronize''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret
/index.rb:252:in `<<''
from
./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/c
lass_methods.rb:199:in `rebuild_index''
from
./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/c
lass_methods.rb:198:in `rebuild_index''
from
./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/c
lass_methods.rb:197:in `rebuild_index''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/connection_adapters/abstract/database_statements.rb:51:in
`transaction''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/transactions.rb:91:in `transaction''
from
./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/c
lass_methods.rb:196:in `rebuild_index''
from
./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/c
lass_methods.rb:194:in `rebuild_index''
from (irb):1:in `irb_binding''
from D:/dev/ruby/lib/ruby/1.8/irb/workspace.rb:52:in
`irb_binding''
from D:/dev/ruby/lib/ruby/1.8/irb/workspace.rb:52
Here is the stack trace I see when I try running my unit tests:
D:\dev\src\booksmart>rake test:units:rcov
(in D:/dev/src/booksmart)
rm -rf ./coverage/units
D:/dev/ruby/bin/ruby
"D:/dev/src/booksmart/vendor/plugins/rails_rcov/tasks/rails
_rcov.rake" --run-rake-task=test:units
(in D:/dev/src/booksmart)
rcov.cmd -o "D:/dev/src/booksmart/coverage/units" -T -x
"rubygems/*,rcov*" --rai
ls -Ilib;test
"D:/dev/ruby/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test
_loader.rb" "test/unit/book_test.rb"
"test/unit/cart_test.rb"
"test/unit/credit_
card_test.rb" "test/unit/line_item_test.rb"
"test/unit/note_test.rb"
"test/unit/
notifications_test.rb" "test/unit/publisher_test.rb"
"test/unit/purchase_test.rb
" "test/unit/user_test.rb" "test/unit/pinning_test.rb"
"test/unit/page_test.rb"
Loaded suite D:/dev/ruby/bin/rcov
Started
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret/index.rb:277
:in `add_document'': failed to allocate memory (NoMemoryError)
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret
/index.rb:277:in `<<''
from D:/dev/ruby/lib/ruby/1.8/monitor.rb:229:in `synchronize''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/ferret-0.10.9-mswin32/lib/ferret
/index.rb:252:in `<<''
from
D:/dev/src/booksmart/config/../vendor/plugins/acts_as_ferret/lib/in
stance_methods.rb:85:in `ferret_create''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/callbacks.rb:344:in `callback''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/callbacks.rb:341:in `callback''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/callbacks.rb:266:in `create_without_timestamps''
from
D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_r
ecord/timestamp.rb:30:in `create''
... 22 levels...
from D:/dev/ruby/lib/ruby/1.8/test/unit/autorunner.rb:200:in
`run''
from D:/dev/ruby/lib/ruby/1.8/test/unit/autorunner.rb:13:in
`run''
from D:/dev/ruby/lib/ruby/1.8/test/unit.rb:285
from D:/dev/ruby/bin/rcov:18
--
Posted via http://www.ruby-forum.com/.