From: achill at matrix.gatewaynet.com (Achilleas Mantzios) Date: Tue, 05 Feb 2013 12:31:49 +0200 Subject: [Pljava-dev] FreeBSD pl/java problem : Solved In-Reply-To: <1560986.YqyJcHU8qQ@smadev.internal.net> References: <4461985.cuacIgvZGL@smadev.internal.net> <510FEDBC.4080201@tada.se> <1560986.YqyJcHU8qQ@smadev.internal.net> Message-ID: <7908074.KLypagXKvL@smadev.internal.net> Hi, it seemed from all sides it was a FreeBSD/postgresql/threading problem. After much playing around finally i experimented putting in /usr/local/src/postgresql-9.2.2/src/backend/Makefile : postgres: $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $(export_dynamic) $(call expand_subsys,$^) $(LIBS) -lpthread -o $@ i.e. explicitly linking the postgres backend to /usr/lib/libpthread.so which is a symlink to /usr/lib/libthr.so which is a symlink to /lib/libthr.so.3 , did the trick. root at smadev:/usr/local/src/postgresql-9.2.2# ldd /usr/local/pgsql/bin/postgres /usr/local/pgsql/bin/postgres: libm.so.5 => /lib/libm.so.5 (0x800ae5000) libldap-2.4.so.8 => /usr/local/lib/libldap-2.4.so.8 (0x800c05000) libthr.so.3 => /lib/libthr.so.3 (0x800d47000) libc.so.7 => /lib/libc.so.7 (0x800e60000) liblber-2.4.so.8 => /usr/local/lib/liblber-2.4.so.8 (0x8010a2000) libssl.so.6 => /usr/lib/libssl.so.6 (0x8011af000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x801302000) I had the first good results from pl/java :) On ??? 05 ??? 2013 09:50:25 Achilleas Mantzios wrote: > On ????? 04 ?????? 2013 18:19:56 Thomas Hallgren wrote: > > On 2013-02-04 16:46, Achilleas Mantzios wrote: > > > Just an update on this : > > > > > > by inserting some elog statements in ./src/C/pljava/Backend.c > > > just before JNI_createVM : > > > > > > elog(DEBUG1, "Creating JavaVM"); > > > > > > elog(INFO,"jstat = %d",jstat); > > > > > > //jstat = JNI_createVM(&s_javaVM, &vm_args); > > > JNIEnv *env; > > > jstat = JNI_CreateJavaVM(&s_javaVM, (void**)&env, &vm_args); > > > > > > elog(INFO,"jstat = %d",jstat); > > > > > > it never gets into the second elog, which means it hangs in JNI_CreateJavaVM. > > > > > > Outside postgresql i can run JNI programs with no problem. > > > > > > Any clues? > > Is the postgresql back-end server configured to use the same JVM as > > you're using "outside postgresql" ? > > Yes, besides my system has currently only one jdk installed, > i made pljava.so look for this libjvm.so by explicitly putting > # cat /usr/local/libdata/ldconfig/openjdk > /usr/local/openjdk6/jre/lib/amd64/server > > and therefore : > ldd /usr/local/pgsql/lib/pljava.so > /usr/local/pgsql/lib/pljava.so: > libjvm.so => /usr/local/openjdk6/jre/lib/amd64/server/libjvm.so (0x800c00000) > libc.so.7 => /lib/libc.so.7 (0x800648000) > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x80178f000) > libm.so.5 => /lib/libm.so.5 (0x80199f000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801abf000) > libthr.so.3 => /lib/libthr.so.3 (0x801bcd000) > > Also by doing : > > dynacom=# SELECT PG_BACKEND_PID(); > pg_backend_pid > ---------------- > 20205 > (1 row) > > dynacom=# SELECT getsysprop('user.home'); > > ^^^^^ hangs here, and from another shell : > > % gdb /usr/local/pgsql/bin/postgres 20205 > .... > Reading symbols from /lib/libcrypto.so.6...(no debugging symbols found)...done. > Loaded symbols for /lib/libcrypto.so.6 > Reading symbols from /usr/local/pgsql/lib/pljava.so...(no debugging symbols found)...done. > Loaded symbols for /usr/local/pgsql/lib/pljava.so > Reading symbols from /usr/local/openjdk6/jre/lib/amd64/server/libjvm.so...(no debugging symbols found)...done. > Loaded symbols for /usr/local/openjdk6/jre/lib/amd64/server/libjvm.so > Reading symbols from /usr/lib/libstdc++.so.6...(no debugging symbols found)...done. > Loaded symbols for /usr/lib/libstdc++.so.6 > Reading symbols from /lib/libgcc_s.so.1...(no debugging symbols found)...done. > Loaded symbols for /lib/libgcc_s.so.1 > Reading symbols from /lib/libthr.so.3...(no debugging symbols found)...done. > [New Thread 801616700 (LWP 100683/initial thread)] > Loaded symbols for /lib/libthr.so.3 > Reading symbols from /usr/local/openjdk6/jre/lib/amd64/libverify.so...(no debugging symbols found)...done. > Loaded symbols for /usr/local/openjdk6/jre/lib/amd64/libverify.so > Reading symbols from /usr/local/openjdk6/jre/lib/amd64/libjava.so...(no debugging symbols found)...done. > Loaded symbols for /usr/local/openjdk6/jre/lib/amd64/libjava.so > Reading symbols from /usr/local/openjdk6/jre/lib/amd64/libzip.so...(no debugging symbols found)...done. > Loaded symbols for /usr/local/openjdk6/jre/lib/amd64/libzip.so > .... > > Without the explicit addition to the ldconfig in /usr/local/libdata/ldconfig/openjdk pljava.so had problems > loading it. > > > > > > - thomas > > > > _______________________________________________ > > Pljava-dev mailing list > > Pljava-dev at pgfoundry.org > > http://lists.pgfoundry.org/mailman/listinfo/pljava-dev > - > Achilleas Mantzios > IT DEV > IT DEPT > Dynacom Tankers Mgmt > _______________________________________________ > Pljava-dev mailing list > Pljava-dev at pgfoundry.org > http://lists.pgfoundry.org/mailman/listinfo/pljava-dev - Achilleas Mantzios IT DEV IT DEPT Dynacom Tankers Mgmt