You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Roman Medina-Heigl Hernandez <ro...@rs-labs.com> on 2004/08/17 12:55:22 UTC

[users@httpd] Problems with -DNO_SLACK in Solaris

Hi,

I'll try to summarize. I'm running Apache 1.3.31 + mod_ssl + mod_perl with
many virtual hosts in Solaris 2.8 (sparc), so I went out of file
descriptors. Following the docs
(http://httpd.apache.org/docs/misc/descriptors.html) I decided to
recompile Apache (I used gcc-2.95) with:
CFLAGS='-DNO_SLACK -DFD_SETSIZE=16384 -DEAPI'

I supposed that NO_SLACK option should eliminate some fd checks and my
problems would disappear but it's not the case. Apache failed to include
one Perl module (.pm). Nevertheless, the .pm file existed and the @INC is
correct so I traced httpd process (truss -f) and I got:

17704: 
open64("/usr/local/ActivePerl-5.6/lib/site_perl/5.6.1/Net/LDAP/Bind.pm",
O_RDONLY) = 256
17704:  close(256)                                      = 0

That's the problem. Apache seems to have some check and it takes fd=256 as
invalid, despite -DNO_SLACK.

A correct trace (obtained in another machine running the same recompiled
version of Apache [NO_SLACK, etc]) would be:
12221: 
open64("/usr/local/ActivePerl-5.6/lib/site_perl/5.6.1/Net/LDAP/Bind.pm",
O_RDONLY) = 252
12221:  fstat64(252, 0xFFBECB68)                        = 0
12221:  brk(0x01C32F78)                                 = 0
12221:  brk(0x01C34F78)                                 = 0
12221:  ioctl(252, TCGETA, 0xFFBECAF4)                  Err#25 ENOTTY
12221:  read(252, " #   C o p y r i g h t  ".., 8192)   = 1519
12221:  brk(0x01C34F78)                                 = 0
12221:  brk(0x01C36F78)                                 = 0
12221:  read(252, 0x01C32604, 8192)                     = 0
12221:  llseek(252, 0, SEEK_CUR)                        = 1519
12221:  close(252)

Now, the file is correctly opened.
In both machines, I have:
set rlim_fd_max=8192
set rlim_fd_cur=8192

My questions are:
1) Shouldn't -DNO_SLACK option eliminate this kind of checks?
2) Could it be a bug in Apache? Should I have posted to devel mailing-list?
3) Perhaps a mod_perl problem?
4) Any suggestions? :-(

PS: The build process I'm using is:
1) Compile OpenSSL:

cd openssl-0.9.7d
./config --prefix=/usr/local/openssl -fPIC
make
make test
make install

2) Patch Apache with mod_ssl:

cd ../mod_ssl-2.8.19-1.3.31
./configure --with-apache=../apache_1.3.31 --with-ssl=../openssl-0.9.7d

3) Patch Apache with mod_perl:

cd ../mod_perl-1.29
/usr/local/ActivePerl-5.6/bin/perl Makefile.PL EVERYTHING=1
APACHE_SRC=../apache_1.3.31/src USE_APACI=1 PREP_HTTPD=1 DO_HTTPD=1
make
make install

4) Compile Apache:

cd ../apache_1.3.31

LIBS_SHLIB=`gcc -print-libgcc-file-name` \
CFLAGS='-DNO_SLACK -DFD_SETSIZE=16384 -DEAPI' \
SSL_BASE=../openssl-0.9.7d \
LDFLAGS="-lgcc" ./configure \
--prefix=/usr/local/apache \
--enable-module=ssl \
--enable-module=so \
--activate-module=src/modules/perl/libperl.a \
--enable-module=perl \
--verbose

make
make certificate TYPE=custom
make install


Please, any ideas??? Thanks in advance.

Best regards,
-Román



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org