packaging icon indicating copy to clipboard operation
packaging copied to clipboard

Ubuntu package postgresql-15-citus-12.0 comes with citus_columnar 11.3

Open EraYaN opened this issue 2 years ago • 3 comments

The ubuntu 22.04 package postgresql-15-citus-12.0 12.0.0.citus-1

It installs citus_columnar 11.3, did the build process mess up?

~$ md5sum /usr/lib/postgresql/15/lib/citus_columnar.so /usr/lib/postgresql/15/lib/citus.so
871ca1543bd1f0326ac7df922bc7bfd8  /usr/lib/postgresql/15/lib/citus_columnar.so
97054a94658ab87b67e6f6ea91390c72  /usr/lib/postgresql/15/lib/citus.so
~$ dpkg -s postgresql-15-citus-12.0
Package: postgresql-15-citus-12.0
Status: install ok installed
Priority: optional
Section: database
Installed-Size: 8884
Maintainer: Citus Data <[email protected]>
Architecture: amd64
Source: citus
Version: 12.0.0.citus-1
Provides: postgresql-15-citus
Depends: libc6 (>= 2.34), libcurl4 (>= 7.16.2), liblz4-1 (>= 0.0~r130), libpq5 (>= 9.2~beta3), libssl3 (>= 3.0.0~~alpha1), libzstd1 (>= 1.4.0), postgresql-15
Conflicts: postgresql-15-citus
Description: sharding and distributed joins for PostgreSQL
 Citus is a distributed database implemented as a PostgreSQL extension. It
 provides functions to easily split a PostgreSQL table into shards to be
 placed on remote worker nodes. Citus can replicate shards, update their
 schemas, and keep track of shard health. An advanced distributed planner
 is included which handles queries and modifications against sharded tables.
Homepage: https://github.com/citusdata/citus

EraYaN avatar Aug 02 '23 11:08 EraYaN

cc @gurkanindibay

onderkalaci avatar Aug 03 '23 06:08 onderkalaci

Hi @EraYaN How did you see that columnar extension version is 11.3? In the build process, we do not put binaries directly. First, we execute make and make install just like in regular citus build. Then we put the baked binaries into the packages. @onderkalaci Is there a way to see the citus_columnar version?

gurkanindibay avatar Aug 04 '23 06:08 gurkanindibay

An update to citus_columnar (within postges) will give the message the 11.3 is already installed but it did upgrade citus itself. And listing extensions also shows the old version.

ALTER EXTENSION citus UPDATE;
version "12.0-1" of extension "citus" is already installed
ALTER EXTENSION citus_columnar UPDATE;
version "11.3-1" of extension "citus_columnar" is already installed

UPDATE:

I did some readelf digging and it does have the string 12.0-1 in it.

~$ readelf -p .rodata /usr/lib/postgresql/15/lib/citus.so | grep 12.0-1
  [  f5c4]  12.0-1
~$ readelf -p .rodata /usr/lib/postgresql/15/lib/citus_columnar.so | grep 12.0-1
  [  4bfe]  12.0-1

So not sure where postgres is loading the old binary from the server has been rebooted and restarted multiple times since the upgrade. Or maybe the version that is reported is just wrong in postgresql.

That path is the only path that contains the file named citus_columnar.so, based on sudo find / -mount -name citus_columnar.so

EraYaN avatar Aug 04 '23 15:08 EraYaN