| From: | Pavel Raiskup <praiskup(at)redhat(dot)com> |
|---|---|
| To: | PostgreSQL Hacker <pgsql-hackers(at)postgresql(dot)org> |
| Cc: | devrim(at)gunduz(dot)org |
| Subject: | plruby: rb_iterate symbol clash with libruby.so |
| Date: | 2018-11-03 16:19:40 |
| Message-ID: | 4738198.8KVIIDhgEB@nb.usersys.redhat.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi, I'm curious how it worked before (seems like the function is defined
in both PostgreSQL and Ruby projects for quite some time) - but I recently
came across this situation:
- /bin/postgres is build-time linked with 'ld -E'
- /bin/postgres dlopen()s plruby.so
- plruby.so calls rb_iterate, but linker prefers rb_iterate defined in
/bin/postgres, instead of (the wanted one) rb_iterate from libruby.so
This means an ugly PG server crash. I'm curious what to do with this;
ideally it would be solvable from plruby.so itself, but there doesn't seem
to be nice solution (one could do some hacks with dlopen('libruby.so')).
Is it realistic we could rename red-black tree methods from 'rb_*' to e.g.
'rbt_*' to avoid this clash?
Pavel
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Stephen Frost | 2018-11-03 16:20:49 | Re: Special role for subscriptions |
| Previous Message | Karsten Hilbert | 2018-11-03 16:03:14 | Re: backend crash on DELETE, reproducible locally |