среда, 27 июля 2016 г.

Сакральное Знание: pgpool

Геноссе gunslinger2 сегодня роскошное подкинул.

Если в таске Ansible написать backend_port{{ hostvars[host]['nodenumber']-1 }} = '5432' вместо backend_port{{ hostvars[host]['nodenumber']-1 }} = 5432 вы поймаете дивный месседж в логах вида:

2016-07-27 14:16:21: pid 14246: DETAIL: bind on "/var/run/postgresql/.s.PGPOOLWD_CMD.9000" failed with reason: "Address already in use"

Но самое прикольное вовсе не это. У вас вместе с этим будет валиться с сегфолтом дочерний(!) процесс watchdog самого pgpool:

Jul 27 13:41:00 localhost kernel: [ 3648.050867] pgpool[12264]: segfault at fffffffffffffff0 ip 0000000000458433 sp 00007ffe523e24a8 error 5 in pgpool[400000+134000]
Jul 27 13:41:00 localhost pgpool: 2016-07-27 13:41:00: pid 12260: WARNING: watchdog child process with pid: 12264 was terminated by segmentation fault


Это при том, что watchdog нужен для мониторинга соседних pgpool'ов, а не самой СУБД PostgreSQL. А отличия всего лишь в обрамлении кавычками номера порта. Причём дело не в Ansible даже. Это поведение воспроизводится если указать номер порта в кавычках в самом конфигурационном файле pgpool. Сдаётся нам, что автор сего поделия тот ещё наркоман.

Комментариев нет:

Отправить комментарий