Bug 53455
| Summary: | Ошибки в работе pgpool | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Alexander Makeenkov <amakeenk> |
| Component: | postgresql17-pgpool-II | Assignee: | Alexei Takaseev <taf> |
| Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | taf |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Все же тут скорее ошибки в тстировании. Предлагаю в тестах не менять значения max_wal_senders, по-умолчанию оно ого равно 10, 2 это очень мало. Сообщение pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: LOG: get_query_result failed: status: -2 pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: CONTEXT: while checking replication time lag pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: LOG: get_query_result failed: status: -2 pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: CONTEXT: while checking replication time lag Возникают в случаях, когда между узлами PG заявлена репликация но она не работает (pgpool проводит тестирование времени прохождения реплик) При этом по команде psql -h IP_ADDRESS -p 9999 -U postgres template1 происходит нормальное подключение к СУБД pcp_node_count отрабатывает, если добавить пропущенный ключ -W (Ответ для Alexei Takaseev на комментарий #1) > Все же тут скорее ошибки в тстировании И всё же в версии 4.5.4 такой проблемы нету. (Ответ для Alexei Takaseev на комментарий #1) > Все же тут скорее ошибки в тстировании. Предлагаю в тестах не менять > значения max_wal_senders, по-умолчанию оно ого равно 10, 2 это очень мало. > > > Сообщение > > pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: LOG: > get_query_result failed: status: -2 > pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: CONTEXT: > while checking replication time lag > pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: LOG: > get_query_result failed: status: -2 > pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: CONTEXT: > while checking replication time lag Не трогал max_wal_senders, ничего не изменилось, но тесты поправил. > pcp_node_count отрабатывает, если добавить пропущенный ключ -W Это помогло, спасибо. (Ответ для Alexander Makeenkov на комментарий #2) > (Ответ для Alexei Takaseev на комментарий #1) > > Все же тут скорее ошибки в тстировании > > И всё же в версии 4.5.4 такой проблемы нету. Возможно, просто в прошлой версии pgpool не писал сообщения "while checking replication time lag" в принципе, поэтому их и не было ... (Ответ для Alexander Makeenkov на комментарий #4) > (Ответ для Alexander Makeenkov на комментарий #2) > > (Ответ для Alexei Takaseev на комментарий #1) > > > Все же тут скорее ошибки в тстировании > > > > И всё же в версии 4.5.4 такой проблемы нету. > > Возможно, просто в прошлой версии pgpool не писал сообщения "while checking > replication time lag" в принципе, поэтому их и не было ... Походе на то. Поднял работающую репликацию между узлами PG и сообщение пропало. При этом: # pcp_node_info -h 10.88.10.99 -p 9898 -U postgres -W Password: 10.88.10.99 5432 2 0.500000 up unknown primary unknown 0 none none 2025-03-17 16:36:37 10.88.11.224 5432 2 0.500000 up unknown standby unknown 0 none none 2025-03-17 16:36:37 |

Description
Alexander Makeenkov 2025-03-14 16:04:54 MSKВерсия пакета: 4.6.0-alt1 Актуально для всех версий postgresql*-pgpool-II. Не воспроизводится в р11 на версии 4.5.4-alt1 (например, с postgresql16-pgpool-II). Стенд: 2 хоста Шаги воспроизведения: 1. На обоих хостах установить postgresql: # PG_VERSION=17 # apt-get update && apt-get install -y postgresql${PG_VERSION}-server # /etc/init.d/postgresql initdb (для пользователя postgres задать пароль 1) На первом (master) хосте: # cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf-orig && \ sed -i -e "s/#listen_addresses =.*/listen_addresses = '*'/" \ -e "s/#port = 5432/port = 5432/" \ -e "s/#wal_level =.*/wal_level = replica/" \ -e "s/#max_wal_senders.*/max_wal_senders = 2/" \ /var/lib/pgsql/data/postgresql.conf && \ diff -u --color /var/lib/pgsql/data/postgresql.conf-orig /var/lib/pgsql/data/postgresql.conf На втором хосте: # cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf-orig && \ sed -i -e "s/#listen_addresses =.*/listen_addresses = '*'/" \ -e "s/#port = 5432/port = 5432/" \ -e "s/#hot_standby =.*/hot_standby = on/" /var/lib/pgsql/data/postgresql.conf && \ diff -u --color /var/lib/pgsql/data/postgresql.conf-orig /var/lib/pgsql/data/postgresql.conf На обоих хостах: # echo "host all all 0.0.0.0/0 scram-sha-256" >> /var/lib/pgsql/data/pg_hba.conf # systemctl start postgresql; systemctl status postgresql На master хосте установить пакет (обратить внимание на https://bugzilla.altlinux.org/53450): # apt-get install postgresql${PG_VERSION}-pgpool-II Настроить конфигурацию: # SLAVE_HOST_IP=X.X.X.X # MASTER_HOST_IP=$(hostname -i) && echo $MASTER_HOST_IP # cp /etc/pgpool/pgpool.conf /etc/pgpool/pgpool.conf-orig && cat > /etc/pgpool/pgpool.conf <<EOF listen_addresses = '*' port = 9999 unix_socket_directories = '/var/run/pgpool' pcp_listen_addresses = '*' pcp_port = 9898 pcp_socket_dir = '/var/run/pgpool' backend_hostname0 = '$MASTER_HOST_IP' backend_port0 = 5432 backend_weight0 = 1 backend_data_directory0 = '/var/lib/pgsql/data' backend_flag0 = 'ALLOW_TO_FAILOVER' backend_hostname1 = '$SLAVE_HOST_IP' backend_port1 = 5432 backend_weight1 = 1 backend_data_directory1 = '/var/lib/pgsql/data' backend_flag1 = 'ALLOW_TO_FAILOVER' enable_pool_hba = on pool_passwd = '/etc/pgpool/pool_passwd' load_balance_mode = on replication_mode = on num_init_children = 32 max_pool = 4 failover_when_quorum_exists = off sr_check_user = 'postgres' sr_check_password = '1' EOF # echo "host all all 0.0.0.0/0 scram-sha-256" >> /etc/pgpool/pool_hba.conf # echo postgres:1 > /etc/pgpool/pool_passwd # echo "postgres:$(pg_md5 1)" > /etc/pgpool/pcp.conf && cat /etc/pgpool/pcp.conf Запусить pgpool: # systemctl start pgpool; journalctl -fu pgpool Получаемый результат: pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: LOG: get_query_result failed: status: -2 pgpool[4867]: 2025-03-14 15:56:41.011: sr_check_worker pid 4867: CONTEXT: while checking replication time lag pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: LOG: get_query_result failed: status: -2 pgpool[4867]: 2025-03-14 15:56:51.038: sr_check_worker pid 4867: CONTEXT: while checking replication time lag Так же возникает ошибка при выполнении команд pcp, например: # pcp_node_count -h $MASTER_HOST_IP -U postgres FATAL: authentication failed for user "postgres" DETAIL: username and/or password does not match