On Sun, 25 Mar 2001, Dale Ghent wrote:
|
| I grabbed the 2.0.15 tarball from dev.apache and compiled with:
|
| ./configure --prefix=/local/apache2.0 --enable-info --enable-status
| --with-mpm=threaded --enable-so
|
| $OPTIM was set to -O3 on Solaris 8, latest patches.
|
| I did some testing of large directory listings using my mp3 stash, and it
| seemed that when accessing a directory with FanceIndexing turned on, the
| child handling the request would die with a SIGBUS after doing the
| readdir's (as seen in the attached truss output with the getdents64()
| calls).
|
| However, if I turned FancyIndexing OFF, the request would succeed and
| there would be no SIGBUS.
Following up my own post here with some wierd findings...
While taking a look at this problem, I did the natural thing a compiled a
version with debugging symbols (adding --with-maintainer-mode to the above
configure command) and not having OPTIM set. I put the new debugging bin
in place and started the server with FancyIndexing on.
To my suprise, it worked flawlessly. No SIGBUS'es; truss and gdb both
showed httpd processes happily processing requests that failed before.
I recompiled a new httpd bin without debugging and with OPTIM=-O3, as
before. It began failing again... and one thing that I noticed about the
failures... is that it happened only when viewing directories that have
regular files in them. Directories that have only other directories in it
would be fine.
A binary compiled the "default" way (no maintainer-mode and OPTIM) works
fine.
Are gcc optimizations perhaps broken on Solaris 8? I'll try lesser degrees
of optimizations tomorrow (-O2, etc).
/dale