2012-12-23 21 views
5

Django depoları, Boto ve Django kompresörünü aldıktan sonra bu sabah üretim ortamında bu hatayı almayı başarabildim. ilgili olduğunu bilmiyor ...Django OperationalError: bağlantı için yeni bir işlem başlatılamadı

OperationalError: could not fork new process for connection: Cannot allocate memory 

could not fork new process for connection: Cannot allocate memory 
could not fork new process for connection: Cannot allocate memory 


Stacktrace (most recent call last): 

    File "django/core/handlers/base.py", line 89, in get_response 
    response = middleware_method(request) 
    File "reversion/middleware.py", line 17, in process_request 
    if hasattr(request, "user") and request.user.is_authenticated(): 
    File "django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "django/utils/functional.py", line 248, in _setup 
    self._wrapped = self._setupfunc() 
    File "django/contrib/auth/middleware.py", line 16, in <lambda> 
    request.user = SimpleLazyObject(lambda: get_user(request)) 
    File "django/contrib/auth/middleware.py", line 8, in get_user 
    request._cached_user = auth.get_user(request) 
    File "django/contrib/auth/__init__.py", line 98, in get_user 
    user_id = request.session[SESSION_KEY] 
    File "django/contrib/sessions/backends/base.py", line 39, in __getitem__ 
    return self._session[key] 
    File "django/contrib/sessions/backends/base.py", line 165, in _get_session 
    self._session_cache = self.load() 
    File "django/contrib/sessions/backends/db.py", line 19, in load 
    expire_date__gt=timezone.now() 
    File "django/db/models/manager.py", line 131, in get 
    return self.get_query_set().get(*args, **kwargs) 
    File "django/db/models/query.py", line 361, in get 
    num = len(clone) 
    File "django/db/models/query.py", line 85, in __len__ 
    self._result_cache = list(self.iterator()) 
    File "django/db/models/query.py", line 291, in iterator 
    for row in compiler.results_iter(): 
    File "django/db/models/sql/compiler.py", line 763, in results_iter 
    for rows in self.execute_sql(MULTI): 
    File "django/db/models/sql/compiler.py", line 817, in execute_sql 
    cursor = self.connection.cursor() 
    File "django/db/backends/__init__.py", line 308, in cursor 
    cursor = util.CursorWrapper(self._cursor(), self) 
    File "django/db/backends/postgresql_psycopg2/base.py", line 177, in _cursor 
    self.connection = Database.connect(**conn_params) 
    File "psycopg2/__init__.py", line 178, in connect 
    return _connect(dsn, connection_factory=connection_factory, async=async) 

Siteyi Heroku üzerinde konuşlandırıyorum. Uygulamayı yeniden başlattıktan sonra biraz çalışır, ancak birkaç dakika sonra tekrar çalışmayı bırakır.

Buna neden olabilecek herhangi bir fikir var mı?

+1

DB bağlantı sorunlarınız var mı (obl). Google beni bu bağlantıya yönlendirdi http://www.postgresql.org/message-id/[email protected] Eğer Heroku teknik desteğiyle iletişime geçerseniz daha iyi olur. – nk9

+0

@ b1 Ahh, teşekkürler, bir şekilde bunu bir süre önce çözdüm, ama cevabı güncellemeyi unuttum ve artık nasıl çözdüğümü hatırlamıyorum! – wrongusername

cevap

3

Aynı problemle, bir postgresql veritabanı ile basit bir django web uygulaması kurmaya çalışıyorum ve bunu çözmeyi başardım. Eğer veritabanına sorgular tarafından oluşturulan piton listelerini geçen zaman, sen sınırı listesinin büyüklüğü gerekir:

Tam hatayı anlamıyorum ama düzeltme oldukça basittir.

Yani örneğin size bağlam olarak aşağıdaki listeyi geçiyoruz: set_list gerçekten büyük olabilir çünkü

set_list = userSetTable.objects.all()

return render(request, 'fc/user.html', {'set_list': set_list,})

hataya neden olur bu. noktası olsun ...

set_list = userSetTable.objects.all()[0:20] 

Yani gerçek dünyadaki bir uygulamada, sayfanın sonuçlarına veya ne gibi listesini görüntülemek isteyebilirsiniz: Bir maksimum boyutu belirtmek gerekir.

İlgili konular