2014-11-03 55 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會去無限長的時間。你應該通過一個破壞條件。