[Pljava-dev] FreeBSD pl/java problem : Solved

From: thomas at tada(dot)se (Thomas Hallgren)
To:
Subject: [Pljava-dev] FreeBSD pl/java problem : Solved
Date: 2013-02-05 10:41:19
Message-ID: 5110E1CF.7040501@tada.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

That's great news. Thanks for conveying your solution to the list.

- thomas

On 2013-02-05 11:31, Achilleas Mantzios wrote:
> 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
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at pgfoundry.org
> http://lists.pgfoundry.org/mailman/listinfo/pljava-dev

In response to

Browse pljava-dev by date

  From Date Subject
Next Message Manos Tsahakis 2013-02-05 14:37:35 [Pljava-dev] Cannot obtain java.sql.Array from java.sql.ResultSet getArray() method call
Previous Message Achilleas Mantzios 2013-02-05 10:31:49 [Pljava-dev] FreeBSD pl/java problem : Solved