postgrespro / pg_pathman

Partitioning tool for PostgreSQL
Other
584 stars 69 forks source link

PostgreSQL падает с ошибкой Segmentation fault #273

Open zakisss opened 1 year ago

zakisss commented 1 year ago

Problem description

Предыстория: у меня есть база на 1С с закрытым кодом которая генерирует довольно тяжелые запросы к СУБД и повлиять по изменению кода я не могу, в запросе используется одна таблица с 58 миллионов строк и данная таблица используется в left join 3-5 соединений в одном запросе, из за этого запрос выполняется часами а иногда я даже не смог дождаться завершения его и даже получить детальный план запроса через EXPLAIN (ANALYZE), чтобы как то решит проблему я использовал PostgresPro 15 с модулем pg_pathman и нарезал секции по периоду месяц, это решило проблему с данным запросом он стал выполняться минуты.

Но есть другая проблема иногда PostgreSQL падает с ошибкой Segmentation fault в логах с частью запроса в котором используется таблица нарезанная на секции, если убрать секционирование модулем pg_pathman то ошибка пропадает. Данная ошибка похожа на проблему которую писали тут https://github.com/postgrespro/pg_pathman/issues/193

Что нужно сделать чтобы отловить проблему для исправления данной ошибки?

Environment

SELECT * FROM pg_extension; oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition -----------+------------+----------+--------------+----------------+------------+---------------------------------+-------------- 3404533 | pg_pathman | 10 | 3404492 | f | 1.5 | {3404535,3404545} | {"",""}

SELECT version() PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit

SELECT pgpro_version() Postgres Pro (standard) 15.3.2 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit

SELECT pgpro_edition() standard

SELECT pathman.pathman_version() 1.5.12