On Sat, 17 Feb 2001, Abhijit Menon-Sen wrote:
[EMAIL PROTECTED] (2001-02-17 03:30:13):
i'm pretty sure there's also a need to unescape the scheme, but i
didn't try to fix that...
[...]
+ *) Escapes in hostnames such as www.%61rctic.org were not handled
+ properly. [Dean
sorry guys i must have missed the warning in my commit... and i didn't
realise you were nearing a release.
unfortunately my commit, and the one below are both wrong -- they
mishandle a request such as "GET http://abc%3Adef:8080/foo HTTP/1.0"
%3A is : ... and the use of %3A there gives a
On Fri, 23 Feb 2001, Roy T. Fielding wrote:
That's how it it was originally. It was changed to this model not long
after the original code was committed. One of the problems with using
seconds and a separate microsecond field, is that platforms other than
Unix don't have the same
On Fri, 26 Jan 2001 [EMAIL PROTECTED] wrote:
Try this on any version of Apache:
telnet localhost 8080
GET http://www.yahoo.com/ HTTP/1.0
This will get you the index of the current machine.
that is correct. and you'll get the index of the "current machine" (i.e.
default server) if you do
mod_autoindex still needs an overhaul.
-dean
On Fri, 23 Feb 2001, Jeremy M. Dolan wrote:
Is there any way to set up non-recursive descriptions for autoindex?
I've even tried inclosing in 'FilesMatch "."' and similar hacks.
I'm trying to add descriptions some files in .htaccess's, however
On Sun, 25 Feb 2001 [EMAIL PROTECTED] wrote:
What is the real argument behing the whole typecasting
thing, anyway? It works.
typecasting hides typing problems. you can easily end up in situations
where you are truncating or extending integers without realising it.
it's much better to get the
On Fri, 23 Feb 2001, Rodent of Unusual Size wrote:
Then let us call it 'WorkersPerChild,' confound it! Or whatever
name we use for 'entity capable of serving a request'!
+1000.
it's 2.0, please make the configuration directives meaningful. i think i
had an XXX or TODO or somesuch comment
why do you start more than one process in the default configuration?
-dean
On Thu, 22 Feb 2001, Jeff Trawick wrote:
Currently we *aim* to start up 250 worker threads by default (5 child
processes, 50 threads each). (We actually start more, but that can be
fixed easily enough :) )
That
On Wed, 21 Feb 2001, Jonathan Day wrote:
IMHO, Apache is in danger of taking the same road. For certain
specific types of content, it's being out-classed. mod_ssl's EAPI
if you search through the archives you'll find that EAPI (and KEAPI) were
considered to be good ideas, but that they
On Sun, 25 Feb 2001, William A. Rowe, Jr. wrote:
From: "dean gaudet" [EMAIL PROTECTED]
Sent: Sunday, February 25, 2001 6:14 PM
On Fri, 23 Feb 2001, Rodent of Unusual Size wrote:
Then let us call it 'WorkersPerChild,' confound it! Or whatever
name we use for 'enti
On Fri, 16 Feb 2001, Rodent of Unusual Size wrote:
Greg Stein wrote:
The type was apr_uint32_t and the format was %ld. Those are
compatible.
Um, do not some platforms define a 'long int' as 64 bits?
yup.
if you look at the C99 standard you'll see that stdint.h defines macros
for
i'm a bit of an I18N novice, but doesn't it all just magically work if you
use UTF-8 encoding everywhere?
UTF-8 deliberately avoids using \0 and / in the encodings. plain ascii
works unmodified. unix filesystems generally support UTF-8 directly
(because of the \0 and / avoidance).
this allows
On Sat, 17 Feb 2001, Andrew Ho wrote:
+if (need_timeout) {
+old_disp = signal(SIGCHLD, null_sig_chld_handler);
+/* race condition here, we could get a SIGCHLD before we sleep, oh well */
+sleep(3);
+signal(SIGCHLD, old_disp);
+}
this terminates
On Fri, 9 Mar 2001, Simon Kirby wrote:
So, well, what's the point? I don't see any advantage to this change.
the point, which i think lots of folks have forgotten, is that there are
security problems with using DNS names controlled by your customers in
your VirtualHost statements.
it's a
On Thu, 22 Mar 2001, William A. Rowe, Jr. wrote:
With a far greater understanding than I had 24 hours ago...
Is there any reason not to just _Drop_ the BindAddress directive and strictly
use the Listen directive for Apache 2.0?
I'd even go so far as depreciate the Port directive in favor
OPTIMIZE_TIMEOUTS avoids extra alarm() system calls to manage network
timeouts... and alarm() shouldn't be used in 2.0 anyhow since all network
timeouts should be implemented through poll(). so OPTIMIZE_TIMEOUTS
should not be necessary in 2.0.
-dean
On Tue, 27 Mar 2001, Jeff Trawick wrote:
On Fri, 30 Mar 2001, Bill Stoddard wrote:
There are still a lot of cycles lying around to pick up, like the call to
qsort in apr_table_overlap that occurs in get_mime_headers(), a jillion
strlen() calls to get the length of the same string multiple times, etc.
watch out -- that qsort() is
On Fri, 6 Apr 2001, Jim Winstead wrote:
* a change for dbmmanage because the debian ps apparently
doesn't like leading - on its arguments.
actually this is linux ps in general, not just debian. it's a result of
ps becoming unix98 compatible. unix98 (i.e. sysv) options are preceded by
On Sat, 7 Apr 2001, Bill Stoddard wrote:
Why should we run directory_walk() if a location_walk() has identified a handler
for the request???
only reason i can think of is because the "/" url has always been
considered to be in the filesystem, and so you have to run directory_walk
to get any
On Sat, 7 Apr 2001, William A. Rowe, Jr. wrote:
For 2.1 (or 3.0) this nonsense must change. If I say Location /
SetHandler SQLSpace-handler then the entire file-system part of httpd
needs to just _disappear_.
This requires a number of non-trivial changes:
btw, there are other file-system
On Wed, 11 Apr 2001 [EMAIL PROTECTED] wrote:
On Wed, 11 Apr 2001, Harrie Hazewinkel wrote:
+ /* The MPM types below should actually a string which enables better
identification */
+ #define AP_MPMQ_BEOS 1/* MPM:Beos */
+ #define AP_MPMQ_PERCHILD
how does that work when the browser is making a byterange request on a
massive object... does the proxy strip the byterange before sending to the
upstream?
if so... ew.
it would seem the proxy needs to do byteranges (including caching of
partial content)... or treat byterange requests as
so, like, this zero-copy bucket/filter stuff.
it was supposed to make things faster eh?
-dean
can you give a short description of this allocator?
-dean
On Sat, 21 Apr 2001, Cliff Woolley wrote:
On Sat, 21 Apr 2001, Greg Ames wrote:
are you thinking about an atomic push/pop block allocator? I'll be
happy to help out if so, especially with the machine instruction level
stuff.
On Wed, 25 Apr 2001, Roy T. Fielding wrote:
replacement works better than what we have now in CVS. The claim
that the pipe of death is somehow better than 1.3 signals is just wrong.
if you use signals then you have a requirment that all libraries linked
with httpd be signal safe.
good luck.
i suppose pcommands data could be allocated in pglobal instead...
-dean
On Thu, 26 Apr 2001, Roy T. Fielding wrote:
Once upon a time, httpd would create a global pool as the result from
alloc_init and use that pool as the parent of almost all of the other
pools (I say almost only because
On Sat, 5 May 2001, Ralf S. Engelschall wrote:
In article [EMAIL PROTECTED] you wrote:
MM does not have a malloc-like API. It comes close, but the first thing
MM makes you do to get shared memory, is to decide how much shared memory
you want total. That would be fine, but then if I
aw you forgot the historical excuse!
we initialise the modules twice so that module authors are forced to make
their modules work across server restarts :)
-dean
On Sun, 6 May 2001 [EMAIL PROTECTED] wrote:
Yes, there is. The problem, is that we have to setup some basic
information before
On Mon, 7 May 2001, Ralf S. Engelschall wrote:
BTW, I thought about all this again and think one can solve these issues in a
portable way: you just allocate a rather large shared memory segmet (or
multiple shared memory segments) at startup, but do not touch the mapped
memory at all until it
On Mon, 7 May 2001, Ben Laurie wrote:
dean gaudet wrote:
also, the rest of the problem is that all references to the shared memory
need to be indirected -- because you can't be sure if the process you're
running in has the segment you need mapped.
This is required anyway for a flexible
i dunno, i think you either don't understand ap_pool_join, or something is
totally fucked up with it in 2.0. i wouldn't be surprised if it's that
2.0's POOL_DEBUG code is broken... go look at 1.3 and see if it makes more
sense.
On Wed, 9 May 2001, Luke Kenneth Casson Leighton wrote:
p.s.
On Wed, 9 May 2001, Luke Kenneth Casson Leighton wrote:
my point is that if you _don't_ #define POOL_DEBUG, this _isn't_ a
problem???
nope -- the ap_pool_join() is a promise by the caller that they won't
destroy pool B prior to destroying pool A. well, if you think of this in
terms of 1.3,
sorry don't have time to look at this further right now -- one of my
coworkers was playing with the ab from 1.3 cvs and it has an obvious typo
that miscompiles with -DUSE_SSL, plus when he uses ab -n 2 -s he gets a
floating exception and core dump. (-n 1 works fine)
(it's a rh6.1-based system,
On Thu, 10 May 2001, Luke Kenneth Casson Leighton wrote:
my concern is that apr_pool_join() is going to get in the way
or going to get very confusing.
well, i created it as part of debugging 1.3, it may make sense to
reformulate the debugging approach to APR memory. now that i'm convinced
On Mon, 21 May 2001, Harrie Hazewinkel wrote:
This would ease calculating of the offsets in an external
module (in my case SNMP) and do not have to know the
compiled value of HARD_SERVER_LIMT. I can get those
values from the mpm_show function.
this is one of the many reasons the /proc
On Sun, 20 May 2001 [EMAIL PROTECTED] wrote:
Having said that, the locking issue is a much bigger deal with linked
lists than was mentioned on-list last week. The child process will
have to walk the list whenever mod_status is called, which means that
the child process will have to lock the
], Christopher Smith [EMAIL PROTECTED],
Andrew Morton [EMAIL PROTECTED], Timothy D. Witham [EMAIL PROTECTED],
[EMAIL PROTECTED], Ingo Molnar [EMAIL PROTECTED],
David S. Miller [EMAIL PROTECTED],
dean gaudet [EMAIL PROTECTED],
Zach Brown [EMAIL PROTECTED]
Subject: X15 beta 1
this would seem like an OK time to change the function name to something
more in line with other names in ap/apr... such as ap_parse_http_date.
(but include a comment indicating the old name somewhere so it's easy to
find for those of us who grok foreign programs by doing recursive greps :)
On Fri, 8 Jun 2001, Luke Kenneth Casson Leighton wrote:
what i perhaps should recommend is that a series of independent
libraries be created.
e.g. libaprhttputil (i know it's a bit long).
why?
we don't link against libcstdio libcstring libcsyscalls libcsortnsearch
...
the point of a
On Fri, 8 Jun 2001, Justin Erenkrantz wrote:
On Fri, Jun 08, 2001 at 10:47:10AM -0700, dean gaudet wrote:
On Fri, 8 Jun 2001, Luke Kenneth Casson Leighton wrote:
what i perhaps should recommend is that a series of independent
libraries be created.
e.g. libaprhttputil (i know
On Fri, 8 Jun 2001, Greg Stein wrote:
As Ian pointed out, having mod_status directly read the scoreboard means
that we cannot experiment with different scoreboard designs.
i've been saying the same thing since the beginning of MPM. the analogy
between mod_status and /bin/ps is really valid.
when i did the MPM stuff i didn't want to try to figure out an interface
for the command line arguments from the generic http_main to the MPM.
doing the ONE_PROCESS thing was easy, and put the mpm into the same boat
as the other modules... no access to the command line.
between command lines,
On Thu, 21 Jun 2001, Bill Stoddard wrote:
This can be implemented just as well with the table implementation. The
only thing you have to do is pad the scoreboard entry size to make it
equal to one cache line.
And waste more storage? I am not a CPU designer...how big are cache lines on
that sounds good.
it's just like constant-folding :)
can you generalise it any? Alias and mod_userdir can add more constant
factors in the path.
-dean
On Fri, 22 Jun 2001, Brian Pane wrote:
More fun with gprof...
directory_walk is one of the bigger consumers of user-mode CPU time in
the
On Sat, 23 Jun 2001 [EMAIL PROTECTED] wrote:
On Sat, 23 Jun 2001, Bill Stoddard wrote:
Just a heads up, because I know he's off-list this weekend. Will Rowe has
been looking at some of this stuff recently. He has basically re-worked
directory walk to take advantage of a lot of the
love to see a patch, especially if it can
be generalized at all!
Ryan
On Sat, 23 Jun 2001, dean gaudet wrote:
that sounds good.
it's just like constant-folding :)
can you generalise it any? Alias and mod_userdir can add more constant
factors in the path.
-dean
On Fri, 22 Jun
On Mon, 25 Jun 2001, William A. Rowe, Jr. wrote:
One consideration, depending on module authorship, is if a module
author chooses to 'do something' in the directory merge operation,
relative to the request (uri, query elements, etc.) Does anyone know
of such a module?
the merge functions
i did something similar ages ago... and i think manoj did some followon
work to my patch. my idea was to use a wrapper much like innd uses, just
to open the socket.
if you look at http://arctic.org/~dean/apache/1.3/arctic_mods_v2.patch
and search for pre_opened_socket, permanent_listeners, and
is this across loopback?
if so then it's useless for performance tuning/measurement. you gotta use
a real network, and a beefy enough client to get any meaningful results.
or is it a single 100baseT segment? if so then this is too little network
to give meaningful results as well. unless you
drivers are still under development.
anyhow, to see the difference with zero-copy enabled you'll probably need
to study idle cpu (especially if it's only 100baseT).
-dean
On Mon, 2 Jul 2001, Cliff Woolley wrote:
On Mon, 2 Jul 2001, dean gaudet wrote:
is this across loopback?
if so
On Mon, 2 Jul 2001, Cliff Woolley wrote:
static file local threaded:
No keepalives Keepalives
--
no cache 154.54 req/s 879.06 KB/s 2432.63 req/s 13924.84 KB/s
CacheFile 155.53 req/s 881.38
On Mon, 2 Jul 2001, Bill Stoddard wrote:
For example, if you have three responses to serve pipelined, each with
three file handles, how do you make all the packets go out optimally
filled?
TCP_CORK...
On Linux, can you TCP_CORK, call sendfile() x times then do an uncork
and have all the
On Mon, 2 Jul 2001, Brian Pane wrote:
dean gaudet wrote:
[...]
a mostly optimal syscall sequence for responses to a keep-alive
connection on linux should look something like:
sockfd = accept();
fcntl(sockfd, F_SETFL, O_NDELAY)
setsockopt(sockfd, TCP_CORK = 1
On Mon, 2 Jul 2001, dean gaudet wrote:
On Mon, 2 Jul 2001, Brian Pane wrote:
then it should be possible to eliminate a system call by not doing the
initial read before the select.
that sounds correct and a desirable change. i think the current behaviour
goes all the way back
On Mon, 2 Jul 2001, Sander van Zoest wrote:
Tony Finch http://www.apache.org/~fanf/ work on this and his patch,
http://www.FreeBSD.org/cgi/cvsweb.cgi/src/sys/netinet/tcp_usrreq.c#rev1.53
to FreeBSD 5.0-CURRENT, makes TCP_NOPUSH behave in the manner of
Linux's TCP_CORK.
woo!
that makes
On 3 Jul 2001, Jeff Trawick wrote:
dean gaudet [EMAIL PROTECTED] writes:
there should be no reason to tweak TCP_NODELAY except at socket creation
time.
on at least some levels of Linux TCP_NODELAY and TCP_CORK are mutually
exclusive...
er sorry i meant O_NDELAY, not TCP_NODELAY.
-dean
this is expected behaviour ... well, it may be a bug if you didn't see
this before apache 1.3.20.
a bunch of configuration info is duplicated for each VirtualHost. i
forget all the exact details now, but what you want to be careful about
are any configuration statements within the VirtualHost
On Fri, 6 Jul 2001, Harrie Hazewinkel wrote:
Attached is a patch that adds more dynamic configuration.
It places some of the MPM variables such as 'ap_max_daemons_limit',
'ap_daemons_limit', 'ap_daemons_min_free' and 'ap_daemons_max_free'
in the scoreboard.
-1.
the concept is ok, but the
On Sat, 7 Jul 2001, Brian Pane wrote:
If I'm reading the code right, there's one problem with this approach: the
APR_INCOMPLETE_READ flag doesn't get set until after the first
read on a socket, so the first read on a new connection (the one that
usually
returns EAGAIN) doesn't get skipped
On Sat, 7 Jul 2001, Bill Stoddard wrote:
On Sat, 7 Jul 2001, Brian Pane wrote:
If I'm reading the code right, there's one problem with this approach: the
APR_INCOMPLETE_READ flag doesn't get set until after the first
read on a socket, so the first read on a new connection (the
On Sun, 8 Jul 2001, dean gaudet wrote:
On Sat, 7 Jul 2001, Bill Stoddard wrote:
Humm... If you use TCP_DEFER_ACCEPT, how to you handle clients
connecting but not sending any bytes?
i'm not sure what happens if they connect and close before the timeout.
the socket is passed to accept
so while hacking up that patch to eliminate the block_freelist i thought i
could also get rid of the alloc_mutex entirely. but it appears that
currently the pool code sort of supports multithreaded access to the same
pool.
i say sort of because cleanups don't support multithreaded access -- no
On Sun, 8 Jul 2001, Roy T. Fielding wrote:
The last time I looked at the pool code it was bogus because clean_child_exit
how can clean_child_exit ever hope to work in a multithreaded server
without async notification?
in particular, what happens when modules start creating their own thread
On Sun, 8 Jul 2001, Roy T. Fielding wrote:
[clean_child_exit]
It is only called when the child exits and not per-thread. I think the
threads are already dead by that point, or locked-up due to some fatal
error that is the reason why clean_child_exit is being called.
when you say the
On Sun, 8 Jul 2001, Brian Pane wrote:
So I guess the ideal algorithm for retrieving the initial request
from a client is:
OS with working TCP_DEFER_ACCEPT or equivalent: select first, then read
OS without working TCP_DEFER_ACCEPT or equivalent: read first
isn't it the other way
On Tue, 10 Jul 2001, Dirk-Willem van Gulik wrote:
0 Change the 'exit' when the sockopt fails for SO_ACCEPTFILTER
to a warning;.
1 Leave as is; but provide an AcceptFilter on/off directive
to switch it off - if SO_ACCPETFILTER is defined.
2.Have AcceptFitler on/off
On Tue, 10 Jul 2001, Brian Pane wrote:
1. Add a 2nd create function for apr_hash_t that lets the caller
supply three callback functions:
- a hash function
- an equality-check function
- a concatenation function (if non-NULL, setting x=y followed by
x=y results
On Sat, 14 Jul 2001 [EMAIL PROTECTED] wrote:
Having multiple processes each with multiple threads provides for FAR
more robustness than just a single process with multiple threads.
ya know, i'm not really convinced of the desirability of this explanation
anymore. maybe the hypothetical buggy
On Sat, 14 Jul 2001, Aaron Bannert wrote:
On Sat, Jul 14, 2001 at 12:10:30PM -0700, [EMAIL PROTECTED] wrote:
On Sat, 14 Jul 2001, Sander Striker wrote:
The way I see it, each process has a single pool instance as the parent
for all the threads. Resetting or destroying that pool should
On Sun, 15 Jul 2001, Sander Striker wrote:
Why are we so desperate in opting out the child-pool creation?
I don't really have problems with a child pool for each thread. Actually,
it will make the dynamic locking a lot easier to implement if it stays.
all threads MUST have their own private
On Sat, 14 Jul 2001, Sander Striker wrote:
The way I see it, each process has a single pool instance as the parent
for all the threads. Resetting or destroying that pool should effectively
kill all threads. What am I missing?
how does a thread kill another thread?
-dean
On Sat, 14 Jul 2001, Roy T. Fielding wrote:
The correct fix, as I see it, is to kill off the interprocess
accept lock by removing the possibility of having other processes
in a *threaded* MPM. -- justin
That architecture was explored in detail by Netscape. It isn't reliable
and
OS
implementations of this mechanism will leak resources (aparently in the
kernel), and that is bad.
-aaron
On Tue, Jul 17, 2001 at 01:32:52AM -0700, dean gaudet wrote:
On Sat, 14 Jul 2001, Sander Striker wrote:
The way I see it, each process has a single pool instance
you might want to disassemble the functions in gdb (or using objdump) to
make sure that gcc emits a single division instruction for the x / 10,
x % 10 expressions -- i forget the cases where it can and can't do this.
the low level div instruction is a two result opcode, quotient and
remainder.
see modules/mappers/mod_negotiation.c search for fast redirect.
no comment on how clean this is :)
it's something that should be moved to a core routine.
-dean
On Tue, 17 Jul 2001, Brian Pane wrote:
Is there anything that actually uses the
headers_out or err_headers_out fields in
the
On Tue, 17 Jul 2001, Aaron Bannert wrote:
On Tue, Jul 17, 2001 at 01:29:47AM -0700, dean gaudet wrote:
On Sun, 15 Jul 2001, Sander Striker wrote:
Why are we so desperate in opting out the child-pool creation?
I don't really have problems with a child pool for each thread. Actually
On Tue, 17 Jul 2001, William A. Rowe, Jr. wrote:
Fine... but does that mean we don't want to actually clean out the
dozens of file descriptors that aren't needed from a threaded parent
process when we spawn a child (such as a CGI)?
we do already (or we're supposed to) through all the
77 matches
Mail list logo