Fwd: PostgreSQL hang On FreeBSD, with CFLAGS='-O2 -pthread' workaround
Konstantin Belousov
kostikbel at gmail.com
Wed Apr 16 14:40:23 UTC 2014
On Wed, Apr 16, 2014 at 11:12:52AM +0800, Jov wrote:
> move to hacker' list
>
> this is postgresql thread about this topic:
> http://www.postgresql.org/message-id/11613.1397526760@sss.pgh.pa.us
>
> Jov
> blog: http:amutu.com/blog <http://amutu.com/blog>
>
>
> ---------- Forwarded message ----------
> From: Jov <amutu at amutu.com>
> Date: 2014-04-15 9:23 GMT+08:00
> Subject: PostgreSQL hang On FreeBSD,with CFLAGS='-O2 -pthread' workaround
> To: FreeBSD questions <questions at freebsd.org>
> Cc: Константин Книжник <knizhnik at garret.ru>
>
>
> hi~ FreeBSD hackers,
> I find some problems when use pg on FreeBSD.On FreeBSD,If installed
> extension which pthread lib is used,for example plv8,pljava,imcs etc,when
> query touch these extenstions,the PG backend will hang.
>
> there is a solution,which configure postgresql with CFLAGS='-O2 -pthread'
> and compile pg from source ,then install the extension.But this solution is
> not offical documented and not easy to use(you must compile pg from
> source).It may make some extension developers or user waste much time to
> solve it,and make people complain that PG or FreeBSD not stable.
>
> knizhnik has some insight:
>
> > Actually I have already reproduced the problem with my lockbench test. It
> > work when build as application with -pthread, but doesn't work if it built
> > as shared library and loaded from application built without -pthread.
> > Unfortunately I do not know other solution rather than rebuilt PostgreSQL
> > with pthread. Sorry, that I have not informed you about my investigations
> > and thank you for your help. I also run this test at OS/X - there is no
> > such problem.
>
>
> this is the ldd output:
> [jovz@ ~]$ ldd pgsql_pthread/bin/postgres
> pgsql/bin/postgres:
> libm.so.5 => /lib/libm.so.5 (0x800cd1000)
> libthr.so.3 => /lib/libthr.so.3 (0x800ef7000)
> libc.so.7 => /lib/libc.so.7 (0x80111c000)
> [jovz@ ~]$ ldd pgsql934/bin/postgres
> pgsql934/bin/postgres:
> libm.so.5 => /lib/libm.so.5 (0x800cd1000)
> libc.so.7 => /lib/libc.so.7 (0x800ef7000)
>
> the output make me remember some talk about sshd Zombie recently, which
> something aoubt libc and libthr.
>
> is this a known problem with FreeBSD pthread implement?
Yes, this is a known issue, libthr.so cannot be loaded dynamically.
If the binary could load any dso which is linked with libpthread,
threading library must be linked to the binary.
I tried to mark it as -z nodlopen some time ago, but it caused too much
complains.
>
> ref:
> http://www.postgresql.org/message-id/534785D2.6050105@matrix.gatewaynet.com
>
> https://github.com/knizhnik/imcs/issues/25
>
> http://code.google.com/p/plv8js/issues/detail?id=34
>
> Jov
> blog: http:amutu.com/blog <http://amutu.com/blog>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20140416/4cfa2682/attachment.sig>
More information about the freebsd-hackers
mailing list