Clean up more bogosity and leaky pipes [and fix a recent bug].
1. The only good assert is a deleted assert.
2. The child exit event is a very private item, can't pollute into
other processes we create, shouldn't be named, and should never
be accessable to anyone but the parent.
3. We now pass 'handles', not just a single scoreboard.
BS. This isn't an assert. This is a friggin developer's black hole.
Suggesion: Netware needs to implement the appropriate abort() style
fn. If there is none on Netware, this is non-portable, undebuggable,
and will be yanked by tommorow evening.
Start simplifying and grouping code. Building on the work that rbb
had begun; we need to start organizing this so it can be groked by
more than one person at a time [or simply by more than one person.]
We seem to have fixes in our tree for all of our cited problems.
If we could take the v31 tree and apply those revisions that fixes bugs
to make v32, I'd be game for beta.
Tone down the logging levels for these two messages from ERROR to NOTICE.
It's something to note, but it isn't an error worthy of logging by default.
(Also always log any status values in read_request_line() - incl. timeouts.)
- Fix up a comment so that it makes more sense and explains why we return
APR_EOF instead of an EOS bucket.
- Start to try to be nice when we *know* we are EOS by removing the
bucket. This is only one case where we could end up with a 0 bucket
in ctx->b, but let's remove it and move on. (If the bucket were to
return 0 bytes and still have data left to read on blocking mode,
it's blantly broken, IMHO)
While the tide was turning twords my take... this number of bugs in the
Winnt mpm mean I can't go against Unix getting a good beta. Now the
Q, is unix a good beta :-?
Jeff Trawick [Tue, 5 Feb 2002 22:56:44 +0000 (22:56 +0000)]
In core_input_filter, check for an empty brigade after
APR_BRIGADE_NORMALIZE(). Otherwise, we can get segfaults if a
client says it will post some data but we get FIN before any
data arrives.
Ryan Bloom [Tue, 5 Feb 2002 22:18:49 +0000 (22:18 +0000)]
Remove the install_transport_filters hook. The same function can be
acheived with the pre_connection hook. I have added the socket to the
pre_connection phase to make this possible.
Reviewed by: Bill Stoddard
Jeff Trawick [Tue, 5 Feb 2002 12:52:01 +0000 (12:52 +0000)]
restore the SO_REUSEADDR for listening sockets; it is absolutely
required on most (all?) platforms, regardless of what code changes
might be required to work around the ability on Windows to
inadvertently have more than one server listening on the same ports
Ken Coar [Tue, 5 Feb 2002 11:35:57 +0000 (11:35 +0000)]
Change the 'we turned /foo into http://host/foo' log message
to DEBUG; no reason to clutter people's log files with this
when it's supported behaviour. Of course, they can find out
about the performance impact by LogLeveling Debug. :-)
Cliff Woolley [Tue, 5 Feb 2002 09:26:02 +0000 (09:26 +0000)]
List files that would result in HTTP_UNAUTHORIZED in addition to
successes and redirections, since there's a chance the client will
actually have the proper authorization to retrieve them.
Ryan Bloom [Tue, 5 Feb 2002 06:16:04 +0000 (06:16 +0000)]
This change keeps the server from allowing multiple instances to bind to
the same port. Previously, this was necessary, because the Windows MPM
was binding to the socket in both the parent and child. Today's code
passes the attached socket to the child from the parent, so we don't need
to re-attach in the child.
Ryan Bloom [Tue, 5 Feb 2002 01:13:37 +0000 (01:13 +0000)]
Port the listener bind patch from the Unix MPMs to Windows. This allows
ANy windows bind message to be printed to the console if the server was
started from the command line.
Ian Holsman [Tue, 5 Feb 2002 00:15:42 +0000 (00:15 +0000)]
add a optional function ap_cache_generate_key
which allows a 3rd party module to generate the key name based
on the request_rec.
the idea here is for it to also be able to mess with expiry times
and cachability
add another option.. CacheIgnoreCacheControl. this ignores a 'incoming request's
attempts to get a fresh copy. Mainly I see this as being usefull in r-proxy's
Fixed for the recent apr-ized logfile changes. The Win32 service never
has a STDERR channel in the first place, so the first ap_open_stderr_log()
fails. We need to open it after we've initialized the service control
manager and created the stderr pipe thread that logs stderr output over
in our Application Event Log.
The failure message still looks pretty danged stupid on WinXP however;
"The Apache2 service on Local Computer started and then stopped."
[ok, that part is straightforward.] "Some services stop automatically
if they have no work to do, for example, the Performance Logs and
Alerts service." [that's the bogus bit.]
Greg Ames [Mon, 4 Feb 2002 21:19:08 +0000 (21:19 +0000)]
vetoing and backing out OtherBill's patch rev 1.91. This breaks
mod_autoindex on systems such as Unix where apr_dir_read doesn't automatically
return the filetype. You see a '?' icon rather than a folder icon
for directories on 2.0.31 because mod_autoindex doesn't realize that the thing
is a directory.
Ryan Bloom [Mon, 4 Feb 2002 18:41:46 +0000 (18:41 +0000)]
Not being able to bind to a socket is a fatal error. This makes all
MPMs treat it as such. We now print a message to the console, and return
a non-zero status code.
Aaron Bannert [Sun, 3 Feb 2002 18:51:17 +0000 (18:51 +0000)]
I fully agree with Cliff and Justin on this one. Given the fact that
this only appears in maintainer-mode, I take back my dev@httpd list
comments that this would be a showstopper.
- Add note on the bad AP_DEBUG_ASSERT call. Is this a showstopper or can
it be indicated in the 2.0.31 release notes? Voice your opinions.
- The worker CGI test failure Ken sees seems to be a problem with
perl or httpd-test as no one else seems to be able to reproduce it.
So, let's try to demote this.
- I have no earthly idea what rbb is talking about. Whatever it may be,
I can't fathom that it'd stop a release.
Bill Stoddard [Sun, 3 Feb 2002 06:11:40 +0000 (06:11 +0000)]
First cut at mod_disk_cache, based on code from the IBM AS400 team. Still
need to cleanup where some bytes are stored, check-in routines this module
calls in cache_util, etc.
Cliff Woolley [Sun, 3 Feb 2002 03:19:41 +0000 (03:19 +0000)]
I was leaning toward the configurable flavor, but OtherBill convinced me
we should be more concerned with keeping the parent rock solid than adding
extra layers to protect the children from a broken parent.
Linux 2.4 (MDK 8.0) is fine here as reported earlier.
I'm fine with adjusting that script in a -beta tarball since it isn't a
code change. However, since official binbuilds are contributed by
committers only, this isn't a big deal as they can be smart enough to
use the updated script anyway. And, binbuild has some other issues that
will be addressed shortly. So, even if it doesn't happen, oh well.
- Add note about EBCDIC.
- ap_[r]getline rewrite has landed. I think it is time for this STATUS
item to be removed. Is there anything more w.r.t. input filtering
that needs to be addressed?
Jeff Trawick [Fri, 1 Feb 2002 22:08:34 +0000 (22:08 +0000)]
mod_cgid: Add retry logic for when the daemon can't fork fast
enough to keep up with new requests. Start using
HTTP_SERVER_UNAVAILABLE instead of HTTP_INTERNAL_SERVER_ERROR
when we can't talk to the daemon.
Moved the #endif of APR_HAS_SHARED_MEMORY to include a reference
to the global variable ap_scoreboard_shm. Since this variable was already
being excluded by APR_HAS_SHARED_MEMORY at the beginning of the
file.