2014-11-03 17 views
17

Mam następujący kod testowy:Rails & Couchbase - pamięć przeciekać

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 

Kiedy wykonać metodę w konsoli Rails pamięć przecieki.

Używam:

  • couchbase 1.3.10 gem
  • libcouchbase 2.4.3

pomysłów?

Aktualizacja: Issue utworzona: https://www.couchbase.com/issues/browse/RCBC-187

+2

Myślę, że potrzebujesz warunku końcowego dla pętli. –

+0

@AlejandroBabio To jest kod testowy, używam go do potwierdzenia, że ​​pamięć ciągle rośnie, więc nie mogę zatrzymać pętli. –

+0

Spójrz tutaj: https://github.com/couchbase/couchbase-ruby-client/blob/324b11ae73934238ab255eaf4f1cd6dab6a239fc/ext/couchbase_ext/get.c#L229 –

Odpowiedz

-2

Ten loop trafi do nieskończonego czasu. Powinieneś zdać warunek łamania.

Powiązane problemy