confluentinc / bottledwater-pg

Change data capture from PostgreSQL into Kafka
http://blog.confluent.io/2015/04/23/bottled-water-real-time-integration-of-postgresql-and-kafka/
Apache License 2.0
3 stars 149 forks source link

Error trying to create extension bottledwater #107

Closed bryanconlon closed 8 years ago

bryanconlon commented 8 years ago

ERROR: could not load library "/usr/pgsql-9.5/lib/bottledwater.so": /usr/pgsql-9.5/lib/bottledwater.so: undefined symbol: avro_schema_enum

mcapitanio commented 8 years ago

Hi @bryanconlon,

which version of avro-c do you have installed?

Building and installing the latest version of avro-c directly from source worked for me:

git clone -b release-1.8.1 https://github.com/apache/avro.git
cd avro/lang/c
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo
make
sudo make install
bryanconlon commented 8 years ago

I am using avro-c 1.8.1. Recompiled everything and now I am getting this error:

ERROR: could not load library "/usr/pgsql-9.5/lib/bottledwater.so": libavro.so.23.0.0: cannot open shared object file: No such file or directory

And that fie is located at /usr/local/lib/libavro.so.23.0.0 and it is in /usr/pgsql-9.5/lib/libavro.so.23.0.0.

Fixed it by removing the file in location: /usr/local/lib/libavro.so.23.0.0

buzila commented 8 years ago

I had similar problem when I had installed libavro from Ubuntu (14.04) repository and install it fom source code. It looks like you installed custom assembly of postgres 9.5 with old avro release. I guess current BottledWater requires avro-c 1.8+ and you have to setup correct library path search priority (LD_LIBRARY_PATH).

samstokes commented 8 years ago

Bottled Water should compile with avro-c 1.7.7 as well, but it probably won't work with older versions. I've added a note to the README. (I'm not sure what's the oldest version that will work, so to be conservative I've recommended 1.7.7+ - if anyone has more accurate information, I'd welcome a PR to update the README.)

This seems to be a problem with library loading, which is really annoying for sure, but doesn't seem to be specifically an issue with Bottled Water, so I'm going to close this issue.