[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openldap-devel
Subject:    Re: OpenLDAP / Oracle LDAP: naming collision for
From:       Peter Steiert <psteiert () netsys-it ! de>
Date:       2011-05-26 13:36:16
Message-ID: 4DDE5750.7000006 () netsys-it ! de
[Download RAW message or body]

Hi Andrew,

i didn't swap them around on my own. The problem is caused by the linker ;)

libclntsh.so.11.1 also provides the routines for accessing an Oracle 
database (which is required). As the library is monolithic i can't 
simply remove some routines as i don't know what Oracle is doing then.

I thought that using a separate namespace from the OpenLDAP and a 
separate one for the Oracle family would be helpful to avoid any trouble 
in the future.

Kind regards
Peter


On 24.05.2011 11:41, Andrew Findlay wrote:
> On Fri, May 20, 2011 at 01:40:29PM +0200, Peter Steiert wrote:
>
>> After longer investigation i found out that the routines:
>> 	ldap_set_option
>> 	ldap_get_option
>>
>> are defined in OpenLDAP/ldap.h as well as in Oracle/ldap.h
>> and are locatable in Oraclelib/libclntsh.so.11.1 as well as in
>> OpenLDAP/libldap_r.so.
>>
>> So the ld-loader is sometimes offering the oracle code to the client
>> and sometime the openldap code. This causes failure in the
>> application.
>
> No surprise there! I doubt very much that the OpenLDAP
> libraries and the Oracle ones would be ABI-compatible so you
> should not expect to swap them around.
>
>> Now my question to the community here:
>> Is there a global naming definiton about these routines to avoid
>> such a conflict?
>> Wouldn't it be better if Oracle would use it's own namespace
>> convention as well as OpenLDAP?
>
> The correct soution is to link the application in such a way
> that it picks up at runtime the same library that it was
> linked against when built. It is generally a recipe for
> disaster to try to link two LDAP libraries in one
> application (this is one of the problems with the original
> PAM LDAP and NSS LDAP implementations).
>
> What does Oraclelib/libclntsh.so.11.1 provide? Do you really
> need it? You could certainly have a problem if it lumps LDAP
> code in with other stuff that you need. (If that is the
> case, then maybe you should consider running the LDAP code
> in a separate process with a simple socket link between the
> two).
>
> Andrew

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic