# Memory consumption too high

**URL:** <https://www.ruby-forum.com/t/memory-consumption-too-high/75102>\
**Category:** Ferret\
**Created:** [November 7, 2006, 3:48pm UTC](https://www.ruby-forum.com/t/memory-consumption-too-high/75102 "2006-11-07T15:48:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![chubbard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e56c9b/32.png) [@chubbard](https://www.ruby-forum.com/u/chubbard)\
**Post date:** [November 7, 2006, 3:48pm UTC](https://www.ruby-forum.com/t/memory-consumption-too-high/75102/1 "2006-11-07T15:48:21Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![chubbard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e56c9b/32.png) [@chubbard](https://www.ruby-forum.com/u/chubbard)\
**Post date:** [November 7, 2006, 3:50pm UTC](https://www.ruby-forum.com/t/memory-consumption-too-high/75102/2 "2006-11-07T15:50:30Z")

</div>

Sorry here is a better format stack trace:

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/class\_methods.rb:199:in  
`rebuild_index' from ./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/class_methods.rb:198:in`rebuild\_index’  
from  
./script/…/config/…/config/…/vendor/plugins/acts\_as\_ferret/lib/class\_methods.rb:197:in  
`rebuild_index' from D:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/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\_record/transactions.rb:91:in  
`transaction' from ./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/class_methods.rb:196:in`rebuild\_index’  
from  
./script/…/config/…/config/…/vendor/plugins/acts\_as\_ferret/lib/class\_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

Oh why doesn’t this forum have preview!
