You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2004/11/05 19:23:34 UTC

DO NOT REPLY [Bug 32085] New: - httpd segfaults when called from apachectl and LD_PRELOAD is used.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=32085>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=32085

httpd segfaults when called from apachectl and LD_PRELOAD is used.

           Summary: httpd segfaults when called from apachectl and
                    LD_PRELOAD is used.
           Product: Apache httpd-2.0
           Version: 2.0.52
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Core
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: rayvd@digitalpath.net


Red Hat Enterprise ES 3

Apache 2.0.52 compiled with the following configuration:

CFLAGS="-O3" ./configure \
  --prefix=/usr/local/apache2 \
  --enable-ssl \
  --enable-so \
  --enable-rewrite=shared \
  --enable-expires \
  --enable-info \
  --enable-deflate \
  --enable-ldap \
  --enable-auth-ldap \
  --with-ldap \
  --with-ssl=/usr

PHP 4.3.8 is compiled as a DSL and has Oracle 10g client libraries linked in.

I have the following in my envvars file:

export ORACLE_SID=dpndb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.1.0/client_1
export TNS_ADMIN=/u01/app/oracle/product/10.1.0/client_1/network/admin
export TWO_TASK=/u01/app/oracle/product/10.1.0/client_1/network/admin
export NLS_LANG="English_America.WE8ISO8859P1"

export LD_LIBRARY_PATH="$ORACLE_HOME/lib:/usr/local/apache2/lib:$LD_LIBRARY_PATH"
export LD_PRELOAD=/u01/app/oracle/product/10.1.0/client_1/lib/libclntsh.so.10.1

This setup works great until I attempt to add LDAP authentication support.  Here
is the test addition I have made to my httpd.conf file:

LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600

<Location /ldap-status>
  SetHandler ldap-status
  Order deny,allow
  Deny from all
  Allow from digitalpath.net
  AuthType basic
  AuthName "LDAP Login"
  AuthLDAPEnabled on
  AuthLDAPURL "ldap://hostname.net/dc=ldap,dc=domain,dc=net?uid"
  AuthLDAPAuthoritative on
  require valid-user
</Location>

When I attempt to do anything from apachectl (start, stop, configtest), I get
the following:

[root@webdev bin]# ./apachectl configtest
./apachectl: line 99: 18206 Segmentation fault      $HTTPD -t

If I run httpd -t by itself from the prompt, I get "Syntax OK".  If I bypass the
apachectl script completely and stop my httpd server with httpd -k stop and
start it up again with httpd -k start -DSSL everything works properly, including
the mod_auth_ldap authentication.

As soon as I remove the above LDAP configuration entries from httpd.conf,
apachectl once again works correctly.

However!  If I leave the LDAP configuration in my httpd.conf as it is listed
above, edit my envvars file and remove the LD_PRELOAD line, apachectl does *not*
segfault and I can once again use it to manage my httpd process.

Perhaps there is something I do not understand about LD_PRELOAD ... but it seems
odd that apachectl (or httpd to be exact) Segfaults because of the combination
of it and the LDAP config options in httpd.conf.

I have tried adding /usr/lib/libldap.so.2 to my LD_PRELOAD line to no avail.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org