2014-11-03 18 views
17

Ho il seguente codice di prova:Rails & Couchbase - Perdita di memoria

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 

Quando eseguo il metodo nella console rotaie, la perdite di memoria.

sto usando:

  • Couchbase 1.3.10 gemma
  • libcouchbase 2.4.3

Tutte le idee?

Aggiornamento: Problema creato: https://www.couchbase.com/issues/browse/RCBC-187

+2

Penso che tu abbia bisogno di una condizione di fine per il ciclo. –

+0

@AlejandroBabio Questo è il codice di prova, lo uso per confermare che la memoria continua a crescere, quindi non devo interrompere il ciclo. –

+0

Guarda qui: https://github.com/couchbase/couchbase-ruby-client/blob/324b11ae73934238ab255eaf4f1cd6dab6a239fc/ext/couchbase_ext/get.c#L229 –

risposta

-2

Questo loop andrà per un tempo infinito. Dovresti superare una condizione di rottura.