172 похожих чатов

Каждые выходные после бекапа мастера приходит лаг логической репликации, не

знаю уже как траблшутить:

...
2021-04-27 02:07:29.919 background worker logical replication worker (PID 5851) exited with exit code 1
2021-04-27 02:07:34.925 logical replication apply worker for subscription db0_db3 has started
2021-04-27 08:09:00.336 terminating logical replication worker due to timeout
2021-04-27 08:09:00.339 logical replication worker (PID 5911) exited with exit code 1
2021-04-27 08:09:00.342 logical replication apply worker for subscription db0_db3 has started
2021-04-27 08:09:01.465 could not start WAL streaming: ERROR: replication slot db0_db3 is active for PID 18265
2021-04-27 08:09:01.468 background worker ogical replication worker (PID 23078) exited with exit code 1
2021-04-27 08:09:06.477 logical replication apply worker for subscription db0_db3 has started
2021-04-27 08:09:06.486 could not start WAL streaming: ERROR: replication slot db0_db3 is active for PID 18265
2021-04-27 08:09:06.489 background worker logical replication worker (PID 23385) exited with exit code 1
2021-04-27 08:09:11.498 logical replication apply worker for subscription db0_db3 has started
2021-04-27 08:09:11.507 could not start WAL streaming: ERROR: replication slot db0_db3 is active for PID 18265
...

Эта лавина продолжается некоторое время и затыкается, чтоб через 6 часов снова выкинуть ошибку

terminating logical replication worker due to timeout

Нужно ли таймаут еще увеличить? Что вообще происходит, может ли воркер на подписчике отвалиться из-за долгой трансакции на мастере например?

9 ответов

23 просмотра

а не может быть такого что к слоту подключается два и более инстансов? смущает ошибка что слот уже активен для какого-то пида, но из приведенных логов непонятно кто скрывается под этим пидом

blkmrkt- Автор вопроса
Alexey Lesovsky
а не может быть такого что к слоту подключается дв...

Спасибо, я похоже разобрался! На мастере wal_sender_timeout был отключен, а на подписчике он был 10min. К слоту не должно было больше инстансов подключаться тк у нас один мастер и одна логическая реплика. Агрессивный поллинг сокета на мастере летел потому что сокет помечен как nonblocking, это наверное ожидаемое поведение. На подписчике такой лавины поллов не было, потому что подписчик делает работу в промежутках, а мастер долбит сокет и ждет когда сможет скинуть очредную порцию мяса на NIC. А лаг логической репликации вообще может возникнуть из-за долгой трансакции на мастере? Я читал что мол вообще все оплоги отправляются на логическую реплику, и что старты-стопы трансакций в них тоже содержатся. Если это правда, то получается что может произойти такая ситуация, когда например кто-то на мастере захоботит эксклюзивный лок вообще на все и будет ждать, и тем временем произойдет таймаут подписчика?

blkmrkt
Спасибо, я похоже разобрался! На мастере wal_sende...

> А лаг логической репликации вообще может возникнуть из-за долгой трансакции на мастере? да могут быть разные конфликты в зависимости от того что делалось в транзакции, можно об этом почитать тут

blkmrkt- Автор вопроса
Alexey Lesovsky
> А лаг логической репликации вообще может возникн...

Так это, у меня ж не с конфликтами проблемы а с лагом вызванным таймаутами. После ручного килла walsender на мейне и walreceiver на реплике, проходит 6-8 часов пока реплика не подтвердит последний LSN всего на полшишечки, и только после этого начинает по чуть-чуть продвигать свой прогресс. А там гляди ж и следующие выходные наступают!

blkmrkt- Автор вопроса
blkmrkt
Так это, у меня ж не с конфликтами проблемы а с ла...

И вообще похоже в pg_stat_database_conflicts ничего не пишется на логической реплике

blkmrkt
Так это, у меня ж не с конфликтами проблемы а с ла...

конфликт триггерится через конкретный интервал (см. max_standby_streaming_delay и аналогичный archive_delay), поэтому пока этот таймер не истек, будет копиться лаг. Также возможны более сложные варианты с дедлоками обнаружение которых пофиксили относительно недавно - там репликацияв результате встает колом.

blkmrkt- Автор вопроса
Alexey Lesovsky
конфликт триггерится через конкретный интервал (см...

Это же все настройки для hot standby, а логические реплики общаются через слоты и не находятся в recovery mode

blkmrkt
Это же все настройки для hot standby, а логические...

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

blkmrkt- Автор вопроса
Alexey Lesovsky
да, верное замечание вобщем у меня нет других идей...

Почитал коммиты к 12.6 (мы на 12.5) - сомневаюсь что поможет этот багфикс с незамеченными дедлоками, но обновлюсь в пятницу. Тут еще такая штука что у логического подписчика есть собственная физическая реплика, и сейчас когда смотрю метрики то вижу что у той реплики лаг тоже начал расти в момент когда перестали продвигаться логические confirmed_lst & restart_lsn.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта