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

Reply via email to