netch80: (Default)
[personal profile] netch80
Период смешных ошибок с неожиданными последствиями.

Не моя: в pidfile пишется просто число - PID, ничем не терминируется, файл предварительно (или после) не зачищается. Работало под pid=12347, запущен новый с pid=3642, в pidfile оказалось 36427.

Моя: в кластере живут данные, реплицирующиеся между нодами, но функция вычистки устаревших данных не доработана. Запускается узел, пытается одновременно добавить новую запись истории о своём запуске и синхронизироваться с остальными, умирает под тяжестью данных и приложений (не хватает виртуальной памяти), но остальные, кто ещё жив, запомнили этот запуск. Запускается заново, ещё добавляет, снова умирает... Когда нашли и идентифицировали проблему, уже вычитка базы с другого узла оказывалась слишком тяжёлой и рвала синхронизацию в кластере. Пришлось полностью погасить сервис динамических данных, чтобы остановить размножение мусора.

Пока не знаю, какие выводы тут делать.

Date: 2012-08-30 06:45 am (UTC)
From: [identity profile] dadv.livejournal.com
> Программа запускается, забирает у соседа данные (на это памяти ещё хватает), парсит и складывает в постоянную копию (а вот на то чтобы держать и полученное, и сохранённое - уже нет). Никаких кодов. Просто переполнение.

Если мы говорим о прикладных программах, они работают с виртуальной памятью. Чтобы начать работать с такой памятью, надо сначала получить её от операционой системы. Если памяти не хватает, она вернет ошибку вместо памяти (NULL/MAP_FAILED/что там ещё). Вот тебе код.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 3rd, 2026 09:33 am
Powered by Dreamwidth Studios