2012-12-23 40 views
5

Tôi đã bắt đầu nhận lỗi này trên môi trường sản xuất sáng nay, sau khi nhận được Django-storages, Boto và Django-compressor làm việc để đặt các tệp tĩnh trên S3 ngày hôm qua, mặc dù tôi không biết nếu điều đó có liên quan ...Django OperationalError: không thể ngắt kết nối quá trình mới cho kết nối

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) 

Tôi đang triển khai trang web trên Heroku. Nó hoạt động một chút sau khi tôi khởi động lại ứng dụng, nhưng ngừng hoạt động lại sau vài phút.

Bất kỳ ý tưởng nào về những gì có thể gây ra điều này?

+1

Bạn gặp sự cố kết nối DB (obl). Google gove cho tôi liên kết này http://www.postgresql.org/message-id/[email protected] Vì vậy, sẽ tốt hơn nếu bạn liên hệ với bộ phận hỗ trợ kỹ thuật của Heroku. – nk9

+0

@ b1 Ahh, cảm ơn, bằng cách nào đó tôi đã giải quyết nó một lúc trước, nhưng quên cập nhật câu trả lời và không nhớ cách tôi giải quyết nó nữa! – wrongusername

Trả lời

3

Tôi gặp phải cùng một sự cố khi cố gắng thiết lập ứng dụng web django đơn giản với cơ sở dữ liệu postgresql trên heroku và quản lý để giải quyết nó.

Tôi không hiểu đầy đủ về lỗi nhưng việc sửa chữa là khá đơn giản: khi bạn đang đi qua danh sách python tạo ra bởi các truy vấn cơ sở dữ liệu của bạn, bạn cần phải giới hạn kích thước của danh sách.

Vì vậy, ví dụ nếu bạn đang đi qua như bối cảnh danh sách sau đây:

set_list = userSetTable.objects.all()

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

Điều đó sẽ gây ra một lỗi vì set_list có thể thực sự lớn. Bạn cần chỉ định kích thước tối đa:

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

Vì vậy, trong một ứng dụng thực tế, bạn có thể muốn hiển thị danh sách dưới dạng kết quả trang hoặc bất cứ điều gì ... bạn nhận được điểm.

Các vấn đề liên quan