Hi,

slapd 2.4.44

OpenLDAP instance configure as a proxy (back-ldap)


From time to time, bind operations can take more than 5 sec. These latencies do not seem to come from a CPU or memory problem. I'm trying to see if the network can be the root cause of the issue. To debug the fonction ldap_sasl_bind (libraries/libldap/sasl.c), I activated trace loglevel (logs are manage by rsyslog). In the definition of ldap_sasl_bind, there is

Debug( LDAP_DEBUG_TRACE, "ldap_sasl_bind\n", 0, 0, 0 );

A least the message "ldap_sasl_bind" should appear in logs, which is not the case. Actually, Debug (which is first defined in include/ldap_log.h) is redefined in libraries/libldap/ldap-int.h

...

#include "ldap_log.h"

#undef Debug

#ifdef LDAP_DEBUG

#define DebugTest( level ) \
        ( ldap_debug & level )

#define Debug( level, fmt, arg1, arg2, arg3 ) \
        do { if ( ldap_debug & level ) \
        ldap_log_printf( NULL, (level), (fmt), (arg1), (arg2), (arg3) ); \
        } while ( 0 )

#define LDAP_Debug( subsystem, level, fmt, arg1, arg2, arg3 )\
        ldap_log_printf( NULL, (level), (fmt), (arg1), (arg2), (arg3) )
configure
#else

#define DebugTest( level )                                    (0 == 1)
#define Debug( level, fmt, arg1, arg2, arg3 )                 ((void)0)
#define LDAP_Debug( subsystem, level, fmt, arg1, arg2, arg3 ) ((void)0)

#endif /* LDAP_DEBUG */

...

A a result, the message is send to standard output. By using rsyslog, it is not possible to catch any message inside ldap_sasl_bind.


How to get stdout and stderr messages and still use rsyslog to manage openldap logs ?


Thanks in advance.