Open ykurenkov opened 5 years ago
ESRCH на Windows прооисходит из-за невозможности открыть процесс, т.е. когда OpenProcess возвращает ошибку. Почему это происходит - мне не ясно. Истинный код ошибки к сожалению посгресовая реализация pgkill прячет.
А отладчиком к pgprobackup-у нельзя приконнектится?
Что есть отладчик? Что-то поставить надо на сервер?
@knizhnik, а почему pgkill не зовет GetLastError, чтобы убедиться в том, что процесса действительно нет?
Это глвный поток ждёт завершения запущенных пробэкапом потоков. А если кликнуть на любой другой поток? Какой будет стэк?
@gsmol это же не наш код. А Постгресе видимо предполагается, что если процесс не открылся, то его нет. Но, возможно, там просто каких-то ресурсов не хватает чтобы открыть процесс.
@knizhnik, да постгресовый, но это же не означает автоматически что он правильный.
Читает. Видимо это верификация бэкапа. Там вроде у нас ключик был, что не верифицировать?
Почему он не может процесс открыть - для меня всё равно загадка. Но, видимо, без вставки в это место лога мы отгадки не узнаем.
Я могу прибить процесс?
Прибил процесс, запустил валидацию вручную. Пока всё живенько бежит.
INFO: Backup PWG203 data files are valid INFO: Backup PWG203 WAL segments are valid INFO: Backup PWG203 is valid. INFO: Validate of backup PWG203 completed.
Я всё таки не понял, что это было? Пробэкап каким-то образом зациклился на вилидации? Или вскрытие показало что больной спал? Ручная валидация заняла меньше вреемни, чем прошло до дого момента, когда процесс был убит? Может как-то неправильно распределилась работа между потоками? В логах никаких сообщений об ошибках не было?
Он зациклился ночью, прогрузив ве доступные ему ядра по полной. Проблему я обнаружил утром. Процесс был, что-то делал, максимум использовав процессор. Потом я снял процесс, запустил валидацию вручную, которая заняла около 1 часа 40 минут. Пока не был снят процесс, новый не мог достучаться до "зависшего" (см. первое сообщение).
По-моему там интеррапт прилетел и треды не смогли его переварить.
Не могу воспроизвести.
Пока тоже все работает. Не могло сказаться временное пропадание связи с NAS (на CIFS бекапим по UNC)?
Сложно сказать, может быть и такое.
Закрываем?
Пусть пока повисит, я потом сделаю отдельную задачу запатчить pgkill
pg_probackup завис во время выполнения полного бэкапа, с максимальной загрузкой всех доступных ядер. Статус текущего бэкапа "DONE". Бэкап производится на CIFS. Однако при попытке провалидировать бэкап выдаётся вот такое сообщение:
Хотя процесс pg_probackup с таким PID существует. Вот список открытых файлов, который не поменялся при повторном получении через 10 минут:
Сервер тормозит безбожно. Попробую его придержать в таком состоянии для получения дополнительной информации, пока не поступят жалобы пользователей.