Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Component/s: Server
    • Labels:
      None
    • Environment:
      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|

      { DeltaCloud.new('mockuser', 'mockpassword', 'http://localhost:3002/api') }

      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

      { |m| driver.respond_to? m }

      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.

        Activity

          People

          • Assignee:
            Michal Fojtik
            Reporter:
            Jan Provaznik
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development