How to find and fix a Rails and Couchbase memory leak

There is no terminating condition in your loop so it’s going to run forever and cause the memory issue you mentioned. You should add a relevant break condition in your loop and test if it resolves the issue.

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}"
        break if YOUR_TERMINATING_CONDITION
      rescue ::Couchbase::Error::Base => e
        nil
      end
    end
  end

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)