Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
deltacloud-core-1.0.0-4.fc17.noarch (though same issue with dc-core from git)
sinatra (1.3.2)
sinatra-rabbit (1.0.6)
Fedora 17
Description
Memory used by deltacloudd process increases with time. After 12 hours, it's common it uses ~4G of virt memory and >1G of physical memory (only conductor's dbomatic script which periodically checks running instances every minute was running).
You can reproduce the memory leak by this simple script:
#!/usr/bin/ruby
require 'rubygems'
require 'deltacloud'
1000.times do |i|
Used memory will increase by >10M (both virt and physical). The problem is probably with lambda in check_capability usage in lib/deltacloud/collections/* files:
check_capability :for => lambda
if the lambda is replaced by true or other static value, the memory usage remains constant.
I see that in git the 'check_capability' call was replaced by 'set' call, this change has no influence on this problem.
Also it's weird that after starting deltacloudd, used memory is 233m/33m (virt/res), but after first request, used memory jumps to 776m/90m (virt/res) - this is far more than on Fedora 16, where used memory remains around 160m/50m.