Утечка памяти в библиотеке Google ndb

Я думаю, что есть утечка памяти вndb библиотека но не могу найти где.

Есть ли способ избежать проблемы, описанной ниже?
У вас есть более точное представление о тестировании, чтобы выяснить, где проблема?

Вот как я воспроизвел проблему:

Я создал минималистское приложение Google App Engine с 2 файлами.
app.yaml:

application: myapplicationid
version: demo
runtime: python27
api_version: 1
threadsafe: yes


handlers:
- url: /.*
  script: main.APP

libraries:
- name: webapp2
  version: latest

main.py:

# -*- coding: utf-8 -*-
"""Memory leak demo."""
from google.appengine.ext import ndb
import webapp2


class DummyModel(ndb.Model):

    content = ndb.TextProperty()


class CreatePage(webapp2.RequestHandler):

    def get(self):
        value = str(102**100000)
        entities = (DummyModel(content=value) for _ in xrange(100))
        ndb.put_multi(entities)


class MainPage(webapp2.RequestHandler):

    def get(self):
        """Use of `query().iter()` was suggested here:
            https://code.google.com/p/googleappengine/issues/detail?id=9610
        Same result can be reproduced without decorator and a "classic"
            `query().fetch()`.
        """
        for _ in range(10):
            for entity in DummyModel.query().iter():
                pass # Do whatever you want
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, World!')


APP = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/create', CreatePage),
])

Я загрузил приложение под названием/create один раз.
После этого каждый звонок/ увеличивает память, используемую экземпляром. Пока не остановится из-за ошибкиExceeded soft private memory limit of 128 MB with 143 MB after servicing 5 requests total.

Пример графика использования памяти (вы можете увидеть рост памяти и сбои):

Примечание: проблема может быть воспроизведена с другой структурой, чемwebapp2, лайкweb.py

Ответы на вопрос(0)

Ваш ответ на вопрос