Vonng / pigsty

Battery-Included PostgreSQL Distro as a Free RDS Alternative
https://pigsty.io
GNU Affero General Public License v3.0
3.01k stars 242 forks source link

Fail to load ParadeDB(pg_bm25, pg_analytics) extensions on Ubuntu2204 VM #378

Closed sunxk closed 4 months ago

sunxk commented 4 months ago

如题, 我在虚拟机中测试 Pigsty,

1)首先 "vagrant up" 虚拟机,使用的是ubuntu2204, 然后用ssh meta 登入,

2)接下来运行 bootstrap 和 configure 脚本.

bash -c "$(curl -fsSL https://get.pigsty.cc/latest)"
./bootstrap     # prepare local repo & ansible
./configure     # pre-check and templating config

然后修改pigsty.yml文件,主要是以下三处

superuser: false                # optional, is superuser? false by default
-->
superuser: true                # optional, is superuser? false by default
...
 pg_libs: 'timescaledb, pg_stat_statements, auto_explain'
-->
 pg_libs: 'timescaledb, pg_stat_statements, auto_explain, pg_bm25'
...
# - pg-analytics pg-bm25 pg-sparse  # ParadeDB extension (PG 16 on Ubuntu 22.04 only) # pg-graphql pg-net # supabase extensions
-->
 - pg-analytics pg-bm25 pg-sparse  # ParadeDB extension (PG 16 on Ubuntu 22.04 only) # pg-graphql pg-net # supabase extensions

3)最后运行 "install.yml",整个过程安装正常

等待安装完成后,发现postgres 未能正常启动,查阅资料后尝试修改配置文件,

使用 "patronictl -c /etc/patroni/patroni.yml edit-config" 删除了shared_preload_libraries中的 "pg_bm25",保存后发现postgres 仍然无法正常启动。

====== 接着又折腾了下Docker,先用“docker.yml”安装docker环境, 接着跟着Paradedb官方指引,安装好docker,与pigsty在同一台虚拟机中,发现正常启动并且正常运行。

然后又测试了rocky8 虚拟机,发现问题依旧,只要删除了 shared_preload_libraries 中的pg_bm25就可以正常启动,

期待得到解决,

最后,感谢提供这么有趣的Pigsty,祝好~~~

Vonng commented 4 months ago

AFAIK, bm25 不需要加入到 shared_preload_libraries 中,安装完后直接 CREATE EXTENSION 使用即可。

sunxk commented 4 months ago

Hi,@Vonng

测试了未将pg_bm25加入shared_preload_libraries,CREATE EXTENSION 后会挂起。

https://github.com/paradedb/paradedb/tree/dev/pg_bm2 pg_bm25 文档中有描述: It's very important to make the following change to your postgresql.conf configuration file. pg_bm25 must be in the list of shared_preload_libraries: shared_preload_libraries = 'pg_bm25'

于是,我测试了从paradedb源码编译pg_bm25(0.5.11),加载成功,并且CREATE EXTENSION成功,可以使用,paradedb 网站直接下载的预编译 pg_bm25.so ,问题依旧。

猜测是否是 paradedb 编译postgres时的依赖库与 pigsty 版本的postgres还是有所不同导致的兼容问题。

Vonng commented 4 months ago

Hi,@Vonng

测试了未将pg_bm25加入shared_preload_libraries,CREATE EXTENSION 后会挂起。

https://github.com/paradedb/paradedb/tree/dev/pg_bm2 pg_bm25 文档中有描述: It's very important to make the following change to your postgresql.conf configuration file. pg_bm25 must be in the list of shared_preload_libraries: shared_preload_libraries = 'pg_bm25'

于是,我测试了从paradedb源码编译pg_bm25(0.5.11),加载成功,并且CREATE EXTENSION成功,可以使用,paradedb 网站直接下载的预编译 pg_bm25.so ,问题依旧。

猜测是否是 paradedb 编译postgres时的依赖库与 pigsty 版本的postgres还是有所不同导致的兼容问题。

Ubuntu 22.04 的 ParadeDB 扩展并非由 Pigsty 维护,而是直接在其 GitHub Release 页面提供。

在下个 Release,我们会尝试为 Ubuntu 系统维护同样的扩展集合。