Open begriffs opened 8 years ago
I do get the libdir configured when compiling postgres, which you don't seem to be. What PG are you compiling this against? What's the output of pg_config?
I'm running postgres 9.5.1 installed via homebrew
pg_config:
BINDIR = /usr/local/Cellar/postgresql/9.5.1/bin
DOCDIR = /usr/local/Cellar/postgresql/9.5.1/share/doc/postgresql
HTMLDIR = /usr/local/Cellar/postgresql/9.5.1/share/doc/postgresql
INCLUDEDIR = /usr/local/Cellar/postgresql/9.5.1/include
PKGINCLUDEDIR = /usr/local/Cellar/postgresql/9.5.1/include
INCLUDEDIR-SERVER = /usr/local/Cellar/postgresql/9.5.1/include/server
LIBDIR = /usr/local/lib
PKGLIBDIR = /usr/local/lib/postgresql
LOCALEDIR = /usr/local/Cellar/postgresql/9.5.1/share/locale
MANDIR = /usr/local/Cellar/postgresql/9.5.1/share/man
SHAREDIR = /usr/local/share/postgresql
SYSCONFDIR = /usr/local/etc/postgresql
PGXS = /usr/local/lib/postgresql/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/9.5.1' '--datadir=/usr/local/share/postgresql' '--libdir=/usr/local/lib' '--sysconfdir=/usr/local/etc' '--docdir=/usr/local/Cellar/postgresql/9.5.1/share/doc/postgresql' '--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt' '--with-perl' '--with-tcl' '--with-tclconfig=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib' '--with-uuid=e2fs' 'CC=clang' 'LDFLAGS=-L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' 'CPPFLAGS=-I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include'
CC = clang
CPPFLAGS = -I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2
CFLAGS_SL =
LDFLAGS = -L../../../src/common -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -Wl,-dead_strip_dylibs
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
VERSION = PostgreSQL 9.5.1
@begriffs Note that libdir in the pg_config output is /usr/local/lib, but you've adjusted it to --libdir="/usr/local/Cellar/postgresql/9.5.1/lib" in your workaround. So there really shouldn't be anything relevant in "/usr/local/Cellar/postgresql/9.5.1/lib" - what's the current contents?
@begriffs So, I don't understand how you have any files in that directory at all; libdir and pglibdir pretty clearly are in /usr/local/lib and /usr/local/lib/postgresql respectively. Are files there as well? What are you passing to citus' ./configure?
This is weird, but the following fixes my mac:
brew uninstall --force libjpeg libpng libtiff libgif giflib
I'm attempting to determine why it works for me now and did not work earlier.
First @anarazel you were wondering why I used the path /usr/local/Cellar/postgresql/9.5.1/lib
despite pg_config reporting LIBDIR=/usr/local/lib
. It's because all directories in /usr/local/lib
are symlinks to things in my homebrew "Cellar."
$ ls -lh /usr/local/lib/postgresql
lrwxr-xr-x 1 j admin 41B Feb 12 23:48 /usr/local/lib/postgresql -> ../Cellar/postgresql/9.5.1/lib/postgresql
So interesting thing for debugging the problem: if I install libjpeg then I can get my system to break again.
brew install libjpeg
make clean
./configure
make
make install
Now make check fails like this
# make check
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/backend/distributed/ all
make[1]: Nothing to be done for `all'.
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/bin/csql/ all
make[1]: Nothing to be done for `all'.
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/backend/distributed/ install
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/lib/postgresql'
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/share/postgresql/extension'
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/share/postgresql/extension'
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/Cellar/postgresql/9.5.1/bin'
/usr/bin/install -c -m 755 citus.so '/usr/local/lib/postgresql/citus.so'
/usr/bin/install -c -m 644 .//citus.control '/usr/local/share/postgresql/extension/'
/usr/bin/install -c -m 644 citus--5.0.sql '/usr/local/share/postgresql/extension/'
/usr/bin/install -c -m 755 .//../../bin/scripts/copy_to_distributed_table '/usr/local/Cellar/postgresql/9.5.1/bin/'
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/bin/csql/ install
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/Cellar/postgresql/9.5.1/bin'
/usr/bin/install -c csql '/usr/local/Cellar/postgresql/9.5.1/bin'
/bin/sh /usr/local/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/usr/local/Cellar/postgresql/9.5.1/include/server/distributed/'
/usr/bin/install -c -m 644 src/include/citus_config.h '/usr/local/Cellar/postgresql/9.5.1/include/server/'
/usr/bin/install -c -m 644 /Users/j/citus/citus/./src/include/distributed/*.h '/usr/local/Cellar/postgresql/9.5.1/include/server/distributed/'
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/test/regress check-full
'/usr/bin/perl' /Users/j/citus/citus/src/test/regress/pg_regress_multi.pl --pgxsdir="/usr/local/lib/postgresql/pgxs" --bindir="/usr/local/Cellar/postgresql/9.5.1/bin" --libdir="/usr/local/lib" --majorversion="9.5" --load-extension=citus \
-- --inputdir=/Users/j/citus/citus/src/test/regress --schedule=/Users/j/citus/citus/src/test/regress/multi_schedule
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
Expected in: /usr/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
no data was returned by command ""/usr/local/Cellar/postgresql/9.5.1/bin/postgres" -V"
The program "postgres" is needed by initdb but was not found in the
same directory as "/usr/local/Cellar/postgresql/9.5.1/bin/initdb".
Check your installation.
Could not create master data directory at /Users/j/citus/citus/src/test/regress/pg_regress_multi.pl line 153.
Use of uninitialized value $serversAreShutdown in string eq at /Users/j/citus/citus/src/test/regress/pg_regress_multi.pl line 173.
make[1]: *** [check-multi] Error 25
make: *** [check] Error 2
@lfittl I'd like to try building Citus on your mac and see if the presence or absence of libjpeg affects your build. Just to see if it this is something specific to my machine.
(Just a note for myself as I continue debugging)
I upgraded my homebrew postgres.
When running pg_config
in the same terminal in which I ran the update it tells me LIBDIR = /usr/local/Cellar/postgresql/9.5.2/lib
.
BINDIR = /usr/local/Cellar/postgresql/9.5.2/bin
DOCDIR = /usr/local/Cellar/postgresql/9.5.2/share/doc/postgresql
HTMLDIR = /usr/local/Cellar/postgresql/9.5.2/share/doc/postgresql
INCLUDEDIR = /usr/local/Cellar/postgresql/9.5.2/include
PKGINCLUDEDIR = /usr/local/Cellar/postgresql/9.5.2/include/postgresql
INCLUDEDIR-SERVER = /usr/local/Cellar/postgresql/9.5.2/include/postgresql/server
LIBDIR = /usr/local/Cellar/postgresql/9.5.2/lib
PKGLIBDIR = /usr/local/Cellar/postgresql/9.5.2/lib/postgresql
LOCALEDIR = /usr/local/Cellar/postgresql/9.5.2/share/locale
MANDIR = /usr/local/Cellar/postgresql/9.5.2/share/man
SHAREDIR = /usr/local/Cellar/postgresql/9.5.2/share/postgresql
SYSCONFDIR = /usr/local/Cellar/postgresql/9.5.2/etc/postgresql
PGXS = /usr/local/Cellar/postgresql/9.5.2/lib/postgresql/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/Applications/Postgres.app/Contents/Versions/9.5' '--with-includes=/Applications/Postgres.app/Contents/Versions/9.5/include' '--with-libraries=/Applications/Postgres.app/Contents/Versions/9.5/lib' '--enable-thread-safety' '--with-openssl' '--with-gssapi' '--with-bonjour' '--with-libxml' '--with-libxslt' '--with-perl' '--with-python' '--with-readline' '--with-uuid=e2fs' 'CFLAGS= -mmacosx-version-min=10.7'
CC = gcc
CPPFLAGS = -I/Applications/Postgres.app/Contents/Versions/9.5/include/libxml2 -I/Applications/Postgres.app/Contents/Versions/9.5/include
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -mmacosx-version-min=10.7
CFLAGS_SL =
LDFLAGS = -L../../../src/common -L/Applications/Postgres.app/Contents/Versions/9.5/lib -L/Applications/Postgres.app/Contents/Versions/9.5/lib -Wl,-dead_strip_dylibs
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lxslt -lxml2 -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
VERSION = PostgreSQL 9.5.0
Settings have changed, including LIBDIR
.
BINDIR = /usr/local/Cellar/postgresql/9.5.2/bin
DOCDIR = /usr/local/Cellar/postgresql/9.5.2/share/doc/postgresql
HTMLDIR = /usr/local/Cellar/postgresql/9.5.2/share/doc/postgresql
INCLUDEDIR = /usr/local/Cellar/postgresql/9.5.2/include
PKGINCLUDEDIR = /usr/local/Cellar/postgresql/9.5.2/include
INCLUDEDIR-SERVER = /usr/local/Cellar/postgresql/9.5.2/include/server
LIBDIR = /usr/local/lib
PKGLIBDIR = /usr/local/lib/postgresql
LOCALEDIR = /usr/local/Cellar/postgresql/9.5.2/share/locale
MANDIR = /usr/local/Cellar/postgresql/9.5.2/share/man
SHAREDIR = /usr/local/share/postgresql
SYSCONFDIR = /usr/local/etc/postgresql
PGXS = /usr/local/lib/postgresql/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/9.5.2' '--datadir=/usr/local/share/postgresql' '--libdir=/usr/local/lib' '--sysconfdir=/usr/local/etc' '--docdir=/usr/local/Cellar/postgresql/9.5.2/share/doc/postgresql' '--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt' '--with-perl' '--with-tcl' '--with-tclconfig=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib' '--with-uuid=e2fs' 'CC=clang' 'LDFLAGS=-L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' 'CPPFLAGS=-I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include'
CC = clang
CPPFLAGS = -I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2
CFLAGS_SL =
LDFLAGS = -L../../../src/common -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -Wl,-dead_strip_dylibs
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
VERSION = PostgreSQL 9.5.2
Sadly make check
does not work in either terminal.
@begriffs -- I had two quick questions.
Is this still an issue for you? How likely do you think regular Citus users will run into this issue?
@begriffs -- are you still running into this issue?
(I'm also curious, as I'd like to close this)
I made a note for myself to check this on Tuesday when I'm back in the office.
I just checked myself; same issue (with libdir
, libjpeg
, etc.)
In particular, I noticed that removing the DYLD_LIBRARY_PATH
from pg_regress_multi
fixes things, but I no longer remember why that was necessary; maybe @anarazel can chime in?
Also, I believe this might be related to homebrew
's PostgreSQL itself, which has problems I documented in two other issues:
Given that no customer (or even developer) has ever hit this, I'm kind of leaning to closing it as a known issue with several workarounds that we can discuss if a customer/would-be developer happens to hit it.
@begriffs - What do you think? Does closing this issue sound good to you?
Sure, it's an old issue that hasn't seemed to affect anyone else.
@begriffs -- I just run into problems with make check
and brew
on my OS X. So I'm temporarily re-opening this issue. 😄
I followed the steps in our CONTRIBUTING.md and installed PostgreSQL from Homebrew. Over time, I ended up with two PG versions (9.5.1 and 9.6.3) on my machine. I recently downloaded Citus 7.0.3 and ran the regression tests.
44 regression tests failed with the following SSL related message:
INSERT INTO events_reference_table SELECT * FROM events_table;
+WARNING: connection error: localhost:57638
+DETAIL: could not send data to server: Socket is not connected
+could not send SSL negotiation packet: Socket is not connected
@jasonmp85 -- I remember you mentioned that you were seeing SSL related errors in your regression tests.
I then asked @metdos to retry the same steps in his OS X. @metdos told me that he always build from source because he had run into issues with building from Homebrew's PostgreSQL. So, I uninstalled all Homebrew related Postgres versions and built from source. I then configured Citus with the following:
PG_CONFIG=/usr/local/pgsql/bin/pg_config ./configure
Next, I built and installed Citus. I ran the regression tests and they all pass now. @jasonmp85 -- This looks very similar to the issue you reported on connection tests. Could you check if that's the case?
@begriffs -- Should we guide our users towards building against PG source in CHANGELOG.md -- don't know, just asking?
Running
make
andmake install
succeed on my system butmake check
causes this error.It happens because of the value of the library search path (
libdir
). As a first gross hack I can getmake check
to pass by hard-coding libdir and bindir in the regression test Makefile.My next attempt is to set these variables with the configure script rather than hard-coding them:
However this fails. I notice that the main makefile passes bindir to the regression test makefile but appears not to pass my custom libdir.
My system has had several versions of postgres on it at various times, so it may be fussier than most. Here are some other facts