-
Type:
Bug
-
Resolution: Duplicate
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
I installed the ruby Mongo driver (0.19.1), mongo_ext (0.19.1), and
MongoMapper (trunk) and sporadically get an out of memory error. It
happens very suddenly when the machine has lots of memory.
I downgraded to a previous version I had good luck with (0.18.3) and
the problem doesn't repro anymore. I'm running ruby enterprise
edition w/ nginx. Here's my stack trace:
NoMemoryError (failed to allocate memory):
mongo (0.19.1) lib/./lib/mongo/connection.rb:704:in `recv'
mongo (0.19.1) lib/./lib/mongo/connection.rb:704:in
`receive_message_on_socket'
mongo (0.19.1) lib/./lib/mongo/connection.rb:650:in `read_documents'
mongo (0.19.1) lib/./lib/mongo/connection.rb:610:in `receive'
mongo (0.19.1) lib/./lib/mongo/connection.rb:399:in
`receive_message'
mongo (0.19.1) lib/./lib/mongo/connection.rb:397:in `synchronize'
mongo (0.19.1) lib/./lib/mongo/connection.rb:397:in
`receive_message'
mongo (0.19.1) lib/./lib/mongo/cursor.rb:339:in `send_initial_query'
mongo (0.19.1) lib/./lib/mongo/cursor.rb:316:in
`refill_via_get_more'
mongo (0.19.1) lib/./lib/mongo/cursor.rb:304:in `num_remaining'
mongo (0.19.1) lib/./lib/mongo/cursor.rb:61:in `next_document'
mongo (0.19.1) lib/./lib/mongo/collection.rb:189:in `find_one'
app/controllers/previews_controller.rb:7:in `create_or_update'
warden (0.9.7) lib/warden/manager.rb:34:in `call'
warden (0.9.7) lib/warden/manager.rb:34:in `call'
warden (0.9.7) lib/warden/manager.rb:33:in `catch'
warden (0.9.7) lib/warden/manager.rb:33:in `call'
passenger (2.2.11) lib/phusion_passenger/rack/request_handler.rb:
92:in `process_request'
passenger (2.2.11) lib/phusion_passenger/abstract_request_handler.rb:
207:in `main_loop'
passenger (2.2.11) lib/phusion_passenger/railz/
application_spawner.rb:418:in `start_request_handler'
passenger (2.2.11) lib/phusion_passenger/railz/
application_spawner.rb:358:in `handle_spawn_application'
passenger (2.2.11) lib/phusion_passenger/utils.rb:184:in `safe_fork'
passenger (2.2.11) lib/phusion_passenger/railz/
application_spawner.rb:354:in `handle_spawn_application'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in
`_send_'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in
`main_loop'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:196:in
`start_synchronously'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:163:in
`start'
passenger (2.2.11) lib/phusion_passenger/railz/
application_spawner.rb:213:in `start'
passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:262:in
`spawn_rails_application'
passenger (2.2.11) lib/phusion_passenger/
abstract_server_collection.rb:126:in `lookup_or_add'
passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:256:in
`spawn_rails_application'
passenger (2.2.11) lib/phusion_passenger/
abstract_server_collection.rb:80:in `synchronize'
passenger (2.2.11) lib/phusion_passenger/
abstract_server_collection.rb:79:in `synchronize'
passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:255:in
`spawn_rails_application'
passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:154:in
`spawn_application'
passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:287:in
`handle_spawn_application'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in
`_send_'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in
`main_loop'
passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:196:in
`start_synchronously'
Also, I see this in the nginx error log:
tcmalloc: large alloc 1918967808 bytes == (nil) @
Known bug? I can try to get a better repro if not, but it's fairly
inconsistent (1 out of 75 requests), so not sure I'll have much luck.