On Mon, 2011-05-16 at 12:48 -0500, John Kristoff wrote:
I ran into a problem upgrading from an OSE syslog-ng 3.1.1 to OSE syslog 3.2.4 on a CentOS 64-bit box running under a VM. When starting 3.2.4, here is what I got:
Starting syslog-ng... /usr/lib64/dbd/libdbdpgsql.so: undefined symbol: _dbd_parse_datetime libdbi: Failed to load driver: /usr/lib64/dbd/libdbdpgsql.so The database access library (DBI) reports no usable SQL drivers, perhaps DBI drivers are not installed properly; Error initializing dest driver; dest='d_foo', id='d_foo#0' Error initializing message pipeline;
The following relevant packages are installed:
libdbi-dbd-pgsql.x86_64 0.8.1a-1.2.2 libdbi-devel.i386 0.8.1-2.1 libdbi-devel.x86_64 0.8.1-2.1
It looks like I have an libdbi that is probably just too old? Not an unheard of issue when using CentOS and RedHat, but if there is an easy work around, I'd be interested in hearing about any ideas. Thanks,
Seems like a compilation issue to me. If both the pgsql driver and libdbi core is the same version, such undefined symbol errors shouldn't happen. Getting a workable DBI can be tricky, since there was no official release for a long time now. Distributions usually carry quite outdated packages, and we're considering to abandon DBI for that reason, and use our own stuff instead. It's not difficult to compile from sources however, and the exact libdbi version that we use in PE binary packages can be found on git.balabit.hu/bazsi/libdbi.git and libdbi-drivers.git. We do have some unofficial patches against DBI, and I might be guilty of not pushing them upstream hard enough (and they may not work in all DBI use-cases), but they are at least published :) -- Bazsi