zubkov-andrei / pg_profile

Postgres historic workload reports
Other
228 stars 33 forks source link

При выключеных subsamples спам в логе сервера. #100

Open vut12 opened 3 months ago

vut12 commented 3 months ago

Добрый день! У нас Subsamples собираются с нескольких серверов через функцию take_subsample_subset каждую минуту. При выключеном subsample продолжают устанавливаться соединения с целевым сервером, и лог этого сервера забит сообщениями:

2024-06-23 00:36:00.146 UTC ... @postgres/pg_profile LOG:  could not receive data from client: Connection reset by peer
2024-06-23 00:36:00.146 UTC ... @postgres/pg_profile LOG:  unexpected EOF on client connection with an open transaction
2024-06-23 00:37:00.140 UTC ... @postgres/pg_profile LOG:  could not receive data from client: Connection reset by peer
2024-06-23 00:37:00.141 UTC ... @postgres/pg_profile LOG:  unexpected EOF on client connection with an open transaction
...

Я так понимаю это происходит в init_sample. Возможно стоит поменять логику в take_subsample или в take_subsample_subset исключить сервера с выключенным subsample.

vut12 commented 2 months ago

Обнаружил, что и при включенном subsample тоже спам в логе целевого сервера. В функции take_subsample нет коммита. А в take_sample есть: https://github.com/zubkov-andrei/pg_profile/blob/b4983d2634fc75ce880219d5d20ac82285f625d9/sample/sample.sql#L1398-L1399

UP: Понял почему там нет коммита и дисконнекта. Ведь take_subsamle еще вызывается в take_sample - в этом случае не нужно коммитить и завершать сессию. НО, если take_subsample вызывается одна, получаем спам в логе сервера.

zubkov-andrei commented 1 week ago

Должно быть исправлено в релиз-кандидате 4.7