2014-11-03 45 views
17

我有以下测试代码:导轨&Couchbase - 存储器泄漏

def loop_bucket_gets 
    bucket = Couchbase::Bucket.new({:node_list => ['xxx.xxx.xxx.xxx:8091', 'yyy.yyy.yyy.yyy:8091'], 
            :bucket => 'Foo', 
            :pool => 'default', 
            :expires_in => 1.day, 
            :default_format => :marshal, 
            :key_prefix => '_foo' 
            }) 

    i = 0 
    loop do 
     begin 
     i += 1 
     bucket.get "ABC#{i}" 
     rescue ::Couchbase::Error::Base => e 
     nil 
     end 
    end 
    end 

当我在导轨控制台执行的方法中,存储器泄漏

我使用:

  • couchbase 1.3.10宝石
  • libcouchbase 2.4.3

任何想法?

更新: 创建问题: https://www.couchbase.com/issues/browse/RCBC-187

+2

我认为你需要一个循环的结束条件。 – 2014-11-03 11:39:14

+0

@AjjandroBabio这是测试代码,我用它来确认内存不断增长,因此我不能停止循环。 – 2014-11-03 11:42:40

+0

看这里:https://github.com/couchbase/couchbase-ruby-client/blob/324b11ae73934238ab255eaf4f1cd6dab6a239fc/ext/couchbase_ext/get.c#L229 – 2015-07-18 22:34:43

回答

-2

loop会去无限长的时间。你应该通过一个破坏条件。