Почему некоторые запросы Django ORM внезапно заканчиваются сообщением «Killed»? - PullRequest
7 голосов
/ 20 августа 2010

Иногда при получении данных из базы данных либо через оболочку python, либо через скрипт python процесс python умирает, и на терминал выводится одно слово: Killed

Это буквально всеговорит.Это происходит только с определенными сценариями, но всегда происходит с этими сценариями.Это последовательно происходит с этим единственным запросом, выполнение которого занимает некоторое время, а также с миграцией на юг, которая добавляет кучу строк одну за одной в базу данных.

Первоначально я предполагал, что одна транзакцияЭто заняло слишком много времени, поэтому я включил автокоммит для Postgres.Не решил проблему.

Я проверил журналы Postgres, и это единственное, что есть:

2010-08-19 22:06:34 UTC LOG: could not receive data from client: Connection reset by peer

2010-08-19 22:06:34 UTC LOG: unexpected EOF on client connection

Я пробовал поискать в Google, но, как и следовало ожидать, сложно найти сообщение об ошибке, состоящее из одного слова.

Я использую Django 1.2 с Postgres 8.4 на одном облачном VPS-сервере Ubuntu 10.4, стандартная конфигурация для всего.

Ответы [ 2 ]

6 голосов
/ 20 августа 2010

Только одна вещь, о которой я мог подумать, автоматически убьет процесс в Linux - убийца OOM.Что в системных логах?

0 голосов
/ 21 апреля 2012

Если используется psycopg, возможно, проблема в том, что соединение с БД не закрыто.

Согласно psycopg документы пример:

# Connect to an existing database
>>> conn = psycopg2.connect("dbname=test user=postgres")
# Open a cursor to perform database operations
>>> cur = conn.cursor()
# Close communication with the database
>>> cur.close()
>>> conn.close()

Обратите внимание, что если вы действительно удалите соединение (используя dbcon.close() или удалив объект соединения, вам, вероятно, потребуется выполнить фиксацию или откат, в зависимости от типа транзакции, с которой работает ваше соединение.

Подробнее см. Документы по закрытому соединению .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...