APR
functions?
Regards,
--
Davi Arnaut
far).
The proxy that the LiveJournal folks wrote, I think, copies all the data
from the origin server into a file and then uses sendfile to send to the
client...
Doesn't this limit the network bandwidth to the bandwidth of the disk
and/or file system?
--
Davi Arnaut
Graham Leggett wrote:
Davi Arnaut wrote:
The proxy that the LiveJournal folks wrote, I think, copies all the data
from the origin server into a file and then uses sendfile to send to the
client...
Doesn't this limit the network bandwidth to the bandwidth of the disk
and/or file system
,
Davi Arnaut
(r591384) is better. Please readd the
proposal.
See jorton's comment on PR 43865.
/me stops committing while on holiday trip
Regards,
Davi Arnaut
as absorbed...
IMO, serf is and should be a standalone library. -- justin
Under (or not) the Apache umbrella?
--
Davi Arnaut
as such?
httpd-2.2.5-RC.tar.gz or httpd-2.2.5-dev.tar.gz, and if the tarball gets
enough votes, just rename it to httpd-2.2.5.tar.gz
--
Davi Arnaut
[EMAIL PROTECTED] wrote:
Author: jim
Date: Wed Aug 8 05:41:21 2007
New Revision: 563839
[..]
Changes with Apache 2.2.5
+
+ *) mod_deflate: fix protocol handling in deflate input filter
+ PR 23287 [Nick Kew]
+
+ *) mod_proxy: fix buffer overflow issue
+ PR 41144 [Davi Arnaut
Jim Jagielski wrote:
On Aug 8, 2007, at 8:47 AM, Davi Arnaut wrote:
[EMAIL PROTECTED] wrote:
Author: jim
Date: Wed Aug 8 05:41:21 2007
New Revision: 563839
[..]
Changes with Apache 2.2.5
+
+ *) mod_deflate: fix protocol handling in deflate input filter
+ PR 23287 [Nick Kew
on the subject, but AFAIK it's not reliable because of the
underlying signed - unsigned conversions and unsigned arithmetic of
the various instructions used.
Looking at the code, I think we could use some other scheme to track the
blocked threads.
--
Davi Arnaut
Graham Leggett wrote:
Davi Arnaut wrote:
. Problem:
You have described two separate problems below.
No, and it's seems you are deeply confused on what buckets and brigades
represent. You already committed what ? four fixes to the same problem ?
Each time we point your wrong assumptions you
Ruediger Pluem wrote:
On 10/29/2006 04:39 PM, Davi Arnaut wrote:
Graham Leggett wrote:
Davi Arnaut wrote:
. Problem:
You have described two separate problems below.
No, and it's seems you are deeply confused on what buckets and brigades
represent. You already committed what ? four
Graham Leggett wrote:
Davi Arnaut wrote:
I've just described that. Maybe my English was poor in the e-mail.
Your English is spot on, unfortunately the aggressive nature of your
email isn't.
You are not going to bully anybody on this list into accepting any
patch, it's not how
Graham Leggett wrote:
Davi Arnaut wrote:
You are not going to bully anybody on this list into accepting any
patch, it's not how this project works.
I'm not bulling anyone. This is not a personal attack, it was a public
calling for you to adjust the process.
Let's not fool ourselves
issue first.
--
Davi Arnaut
with the correct offset ? The file pointer offset is unique for a single fd.
I will stop the review here, I have to calm down to really digest what's
happening.
--
Davi Arnaut
Graham Leggett wrote:
On Mon, October 23, 2006 10:50 pm, Davi Arnaut wrote:
AFAIK all major platforms provide one, even win32. I even made a
incomplete APR abstraction for file notification:
http://haxent.com/~davi/apr/notify
Is it possible to add doxygen comments on the apr_notify.h
. When you have the memory already
in user space there isn't much that you can do, the kernel has to copy
it..etc.
--
Davi Arnaut
, that was a wake up call to realise that the disk cache in its
current form sucks.
We have significant contributions from two people - Davi Arnaut and Niklas
Edmundsson, and I've been integrating the issues fixed by both these
contributions into a coherent workable whole, so that the effort spent
for a common goal and not actually
suggesting one is not that helpful.
Let's see if we can attract more attention to the cache problems now.
Graham, could you please summarize the problems we want to solve and the
possible solutions and send then to the list ?
Thanks,
--
Davi Arnaut
Greg Marr wrote:
At 01:41 PM 10/27/2006, Davi Arnaut wrote:
Niklas Edmundsson wrote:
And when you have a file backend, you want to hit your disk cache
and
not the backend when delivering data to a client. People might
think
that this doesn't matter, but for large files, especially larger
Davi Arnaut wrote:
Greg Marr wrote:
At 01:41 PM 10/27/2006, Davi Arnaut wrote:
Niklas Edmundsson wrote:
And when you have a file backend, you want to hit your disk cache
and
not the backend when delivering data to a client. People might
think
that this doesn't matter, but for large files
Graham Leggett wrote:
On Wed, October 25, 2006 11:48 pm, Davi Arnaut wrote:
No, we start with a file bucket on the brigade, I will try to explain
what happens to see if we are talking about the same thing.
Suppose we have a brigade containing a a file bucket, and the file size
is 4.7GB. We
if.
+rv2 = ap_pass_brigade(f-next, bb);
+}
+apr_brigade_destroy(bb);
+}
+else {
+e = APR_BUCKET_NEXT(e);
+}
+}
+}
+
Nice patch.
--
Davi Arnaut
Graham Leggett wrote:
On Wed, October 25, 2006 4:14 pm, Davi Arnaut wrote:
(rv == APR_SUCCESS rv2 == APR_SUCCESS) {
Otherwise we may keep walking through the brigade unnecessarily.
This is intentional - we don't want a failure on store_body() to cause a
premature abort on the network
[1] expect that I dint's
pass the new buckets up the chain before deleting then (and it was file
bucket exclusive). Copying to disk tends to be faster then sending to a
client.
--
Davi Arnaut
1 http://marc.theaimsgroup.com/?l=apache-httpd-devm=115971884005419w=2
Joe Orton wrote:
On Wed, Oct 25, 2006 at 01:54:04PM -0300, Davi Arnaut wrote:
Joe Orton wrote:
Another couple of hundred lines of code and even a new config directive,
and this still doesn't get close to actually fixing the problem! -1
already, this code is just not getting better
, or
what-so-ever filters. Can't we change the rules for apache (core and
modules) operating as a proxy/cache more easily ?
I don't know all possible implications of such a move, but it may work.
--
Davi Arnaut
Graham Leggett wrote:
Davi Arnaut wrote:
Yes, first because size_t is 32 bits :). When you do a read like this on
a file bucket, the whole bucket is not read into memory. The read
function splits the bucket and changes the current bucket to refer to
data that was read.
32 bits is 4GB
Davi Arnaut wrote:
Graham Leggett wrote:
Davi Arnaut wrote:
Yes, first because size_t is 32 bits :). When you do a read like this on
a file bucket, the whole bucket is not read into memory. The read
function splits the bucket and changes the current bucket to refer to
data that was read
the read from backend, which is exactly what we want.
I didn't like that sleep/fstat hackery. How about using a real file
notification scheme ?
--
Davi Arnaut
Graham Leggett wrote:
Davi Arnaut wrote:
Have you seen my patch to address this issue ? IMHO, it is far less
complex and less expensive then the committed workaround.
No - I went through your patches in some detail, but I didn't see one
that addressed this problem specifically. Once
) {
+ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ rewritemap: error querying for %s, key);
Missing return ? res may end up NULL..
--
Davi Arnaut
Niklas Edmundsson wrote:
On Sun, 1 Oct 2006, Davi Arnaut wrote:
store_body:
.. if (is_file_bucket(bucket))
copy_file_bucket(bucket, bb);
Probably, but that doesn't allow for creating a thread/process that
does the copying in the background, which is my long term goal.
Also
Niklas Edmundsson wrote:
On Mon, 2 Oct 2006, Davi Arnaut wrote:
Simpler, yes. But it only has the benefit of not eating all your
memory...
Well, that was the goal. Maybe we could merge this one instead and work
together on the other goals.
As I have said before, we have a large patchset
the file bucket and what happens to the position of the src and target
file pointers in the file.
Linux sendfile() only works on mmapable fds to sockets. splice() one of
the two fds must refer to a pipe (afaik). tee() both fds must refer to
pipes.
--
Davi Arnaut
Niklas Edmundsson wrote:
On Sat, 30 Sep 2006, Davi Arnaut wrote:
Hi,
Wouldn't you avoid a lot of complexity in this patch
if you just deleted from the brigade the implicitly
created heap buckets while reading file buckets ?
Something like:
store_body:
.. if (is_file_bucket(bucket
bucket = bucket_next(bucket);
}
IMHO, this is a lot better than all that added complexity
for a corner case.
--
Davi Arnaut
On 26/09/2006, at 17:35, [EMAIL PROTECTED] wrote:
Author: minfrin
Date: Tue Sep 26 13:35:42 2006
New Revision: 450188
+
+char *buf = apr_palloc(p, CACHE_BUF_SIZE);
+if (!buf) {
+return APR_ENOMEM;
+}
IIRC, apache abort()s on memory allocation errors.
--
Davi Arnaut
On 20/09/2006, at 06:20, Joe Orton wrote:
Hi Davi,
On Tue, Sep 19, 2006 at 11:34:03PM -0300, Davi Arnaut wrote:
Clean up code style in the cache code and shrink the mod_mem_cache
store_body function.
The casts to/from void * are unnecessary and could just be removed
rather than being
On 20/09/2006, at 10:16, Brian Akins wrote:
Davi Arnaut wrote:
Simplify the array and table serialization code, separating it from
the underlying I/O operations.
Probably faster to just put every thing in an iovec (think writev).
Probably no, apr_brigade_writev does (quite) the same
On 20/09/2006, at 11:00, Brian Akins wrote:
Davi Arnaut wrote:
On 20/09/2006, at 10:16, Brian Akins wrote:
Davi Arnaut wrote:
Simplify the array and table serialization code, separating it
from
the underlying I/O operations.
Probably faster to just put every thing in an iovec
On 20/09/2006, at 11:58, Davi Arnaut wrote:
On 20/09/2006, at 11:00, Brian Akins wrote:
Davi Arnaut wrote:
On 20/09/2006, at 10:16, Brian Akins wrote:
Davi Arnaut wrote:
Simplify the array and table serialization code, separating
it from
the underlying I/O operations.
Probably
This patch converts the mod_disk_cache cache directory structure to a
uniformly distributed N level hierarchy. The admin specifies the number
of levels (or directories) and the files are scattered across the
directories. Example:
CacheRoot /cache/
# CacheDirLevels n l1 l2 ln
CacheDirLevels 2 4
Move parts of cache_url_handler() to a smaller add_cache_filters()
function that is easier to read and understand.
Index: modules/cache/mod_cache.c
===
--- modules/cache/mod_cache.c.orig
+++ modules/cache/mod_cache.c
@@ -48,6 +48,44
Don't pass 'large' objects by value when not needed, it wastes time and space.
Index: modules/cache/cache_util.c
===
--- modules/cache/cache_util.c.orig
+++ modules/cache/cache_util.c
@@ -28,40 +28,41 @@
/* Determine if url matches
Move parts of cache_save_filter() to a smaller check_cacheable_request()
function that is easier to read and understand. Also, a useless assignment
is removed.
Index: modules/cache/mod_cache.c
===
--- modules/cache/mod_cache.c.orig
Don't delete empty cache directories, it is too expensive and unnecessary.
Later they can be removed with htcacheclean.
Index: modules/cache/mod_disk_cache.c
===
--- modules/cache/mod_disk_cache.c.orig
+++
Hi,
My first round of patches to the cache-refactor branch. They are mostly
cleanups,
bug fixes and small but useful enchantments.
The patches are also available at http://verdesmares.com/Apache/patches/
--
Davi Arnaut
Don't cache requests with a expires date in the past; otherwise mod_cache will
always try to cache the URL. This bug might lead to numerous rename() errors
on win32 if the URL was previously cached.
Index: modules/cache/mod_cache.c
Clean up code style in the cache code and shrink the mod_mem_cache
store_body function.
Index: modules/cache/mod_mem_cache.c
===
--- modules/cache/mod_mem_cache.c.orig
+++ modules/cache/mod_mem_cache.c
@@ -52,27 +52,30 @@
module
Convert mod_mem_cache to use APR memory pool functions by creating
a root pool for object persistence across requests. This also
eliminates the need for custom serialization code.
Index: modules/cache/mod_mem_cache.c
===
---
Remove duplicated defines.
Index: modules/cache/mod_cache.h
===
--- modules/cache/mod_cache.h.orig
+++ modules/cache/mod_cache.h
@@ -311,27 +311,6 @@
/* hooks */
-/* Create a set of CACHE_DECLARE(type),
According to my reading of RFC3986 (section 6.2.3.) if a URI contains an
authority component and an empty path, the empty path is to be equivalent
to /.
It explicitly cites the following four URIs as equivalents:
http://example.com
http://example.com/
http://example.com:/
Move parts of cache_select() to a smaller cache_check_request()
function that is easier to read and understand.
Index: modules/cache/cache_storage.c
===
--- modules/cache/cache_storage.c.orig
+++ modules/cache/cache_storage.c
@@
Move members from cache_object_t to mem_cache_object_t that are only
required for mod_mem_cache.
Index: modules/cache/mod_cache.h
===
--- modules/cache/mod_cache.h.orig
+++ modules/cache/mod_cache.h
@@ -181,23 +181,12 @@
/* cache
On 14/09/2006, at 04:24, Niklas Edmundsson wrote:
On Wed, 13 Sep 2006, Davi Arnaut wrote:
I'm working on this. You may want to check my proposal at http://
verdesmares.com/Apache/proposal.txt
Will it be possible to do away with one file for headers and one
file for body in mod_disk_cache
extend the format to support it.
--
Davi Arnaut
when this (pretty major) patchset gets
committed...
Probably because I have not yet submitted it for inclusion and it's
not finished.
A new cache-dev branch would be really nice - hint hint :)
--
Davi Arnaut
Davi Arnaut wrote:
On 13/09/2006, at 16:29, Issac Goldstand wrote:
Hi all
On 14/09/2006, at 08:48, Graham Leggett wrote:
On Thu, September 14, 2006 1:42 pm, Davi Arnaut wrote:
This is not a top priority since actually there is no complete
support for it in mod_cache (partial responses and such), but it
would be nice to have it.
HTTP/1.1 compliance is mandatory
On 14/09/2006, at 09:06, Niklas Edmundsson wrote:
On Thu, 14 Sep 2006, Davi Arnaut wrote:
On 14/09/2006, at 04:24, Niklas Edmundsson wrote:
On Wed, 13 Sep 2006, Davi Arnaut wrote:
I'm working on this. You may want to check my proposal at http://
verdesmares.com/Apache/proposal.txt
On 14/09/2006, at 09:21, Davi Arnaut wrote:
On 14/09/2006, at 09:06, Niklas Edmundsson wrote:
On Thu, 14 Sep 2006, Davi Arnaut wrote:
On 14/09/2006, at 04:24, Niklas Edmundsson wrote:
On Wed, 13 Sep 2006, Davi Arnaut wrote:
I'm working on this. You may want to check my proposal
/Apache/patches/022.patch
I'm still working on it, things may change radically.
--
Davi Arnaut
Em 19/08/2006, às 07:55, Mladen Turk escreveu:
Hi,
Anyone knows how to detect the mpm used so that
module can be build with/without threading code
depending if the mpm is prefork or any other threaded
one like worker by using apxs?
Why use apxs ?
mpm.h:
#define WORKER_MPM
#define MPM_NAME
Em 28/07/2006, às 13:34, [EMAIL PROTECTED] escreveu:
Author: jfclere
Date: Fri Jul 28 09:33:58 2006
New Revision: 426604
...
+
+static const slotmem_storage_method *checkstorage = NULL;
+static ap_slotmem_t *myscore=NULL;
Indentation consistency ? myscore=NULL
+
+if (!port) {
+
than that, I modified a bit the way and which storege callback
are called.
Also, I would like to thank the patience of my mentor, Paul Querna.
--
Davi Arnaut
This patch converts the mod_disk_cache cache directory structure to a
uniformly distributed N level hierarchy. The admin specifies the number
of levels (or directories) and the files are scattered across the
directories. Example:
CacheRoot /cache/
# CacheDirLevels n l1 l2 ln
CacheDirLevels 2 4
Don't cache requests with a expires date in the past; otherwise the cache code
will _always_ try to cache the URL, leading to numerous rename() errors on win32
since the URL is already cached.
Index: trunk/modules/cache/mod_cache.c
According to my reading of RFC3986 (section 6.2.3.) if a URI contains an
authority component and an empty path, the empty path is to be equivalent
to /.
It explicitly cites the following four URIs as equivalents:
http://example.com
http://example.com/
http://example.com:/
Move parts of cache_save_filter() to a smaller check_cacheable_request()
function that is easier to read and understand. Also, a useless assignment
is removed.
Index: trunk/modules/cache/mod_cache.c
===
---
Don't pass 'large' objects by value when not needed, it wastes time and space.
Index: trunk/modules/cache/cache_util.c
===
--- trunk.orig/modules/cache/cache_util.c
+++ trunk/modules/cache/cache_util.c
@@ -28,40 +28,41 @@ extern
Move parts of cache_url_handler() to a smaller add_cache_filters()
function that is easier to read and understand.
Index: trunk/modules/cache/mod_cache.c
===
--- trunk.orig/modules/cache/mod_cache.c
+++
Later on those will handle all HTTP specific caching nuances
Index: trunk/modules/cache/cache_storage.c
===
--- trunk.orig/modules/cache/cache_storage.c
+++ trunk/modules/cache/cache_storage.c
@@ -24,6 +24,30 @@ extern module
Move the open_entity call to cache_recall_entity_headers, adding a
new urlkey parameter.
Index: trunk/modules/cache/cache_storage.c
===
--- trunk.orig/modules/cache/cache_storage.c
+++ trunk/modules/cache/cache_storage.c
@@ -37,8
Move parts of cache_select() to a smaller cache_check_request()
function that is easier to read and understand.
Index: trunk/modules/cache/cache_storage.c
===
--- trunk.orig/modules/cache/cache_storage.c
+++
An open_entity without a close_entity call is pointless, those can
be resumed to a single call.
Index: trunk/modules/cache/cache_storage.c
===
--- trunk.orig/modules/cache/cache_storage.c
+++ trunk/modules/cache/cache_storage.c
@@
: 158 files: 711 size: 6.3M
dir: 0A/ subs: 146 files: 666 size: 5.1M
dir: 0B/ subs: 157 files: 701 size: 5.1M
dir: 0C/ subs: 157 files: 671 size: 5.2M
dir: 0D/ subs: 157 files: 711 size: 5.7M
dir: 0E/ subs: 149 files: 704 size: 5.6M
dir: 0F/ subs: 158 files: 742 size: 5.8M
--
Davi Arnaut
Index
Em 20/07/2006, às 17:06, Colm MacCarthaigh escreveu:
On Thu, Jul 20, 2006 at 11:58:01AM -0300, Davi Arnaut wrote:
Also, with this patch it is possible to designate directories to
separate
partitions because the temporary files are created on the destination
directory.
I'm not sure it goes
On Thu, 22 Jun 2006 06:35:05 -0700
Paul Querna [EMAIL PROTECTED] wrote:
Davi Arnaut wrote:
Don't cache requests with a expires date in the past; otherwise the cache
code
will _always_ try to cache the URL, leading to numerous rename() errors -
since
the URL is already cached
Hi,
Don't cache requests with a expires date in the past; otherwise the cache code
will _always_ try to cache the URL, leading to numerous rename() errors - since
the URL is already cached.
--
Davi Arnaut
Index: modules/cache/mod_cache.c
this point I'm going
to send a new report.
- Notes
Don't expect much work on this in June, my semester is ending (tests..
oh my) and there is the World Soccer Cup (FIFA) which nearly stops
the country (Brazil is expected to win its sixty championship).
--
Davi Arnaut
1. Redesigning and extending
championship).
--
Davi Arnaut
1. Redesigning and extending the Apache cache architecture.
http://verdesmares.com/Apache/proposal.txt
Hi,
Remove mod_disk_cache temporary files when rename() fails, otherwise
they may accumulate in excess.
--
Davi Arnaut
Index: modules/cache/mod_disk_cache.c
===
--- modules/cache/mod_disk_cache.c (revision 409900)
+++ modules
pid.
With this patch it's possible to stop the httpd daemon with
the standart -k stop signal on WIN9X.
--
Davi Arnaut
Index: server/mpm/winnt/service.c
===
--- server/mpm/winnt/service.c (revision 409410)
+++ server/mpm/winnt
On Fri, 26 May 2006 13:48:05 -0500
William A. Rowe, Jr. [EMAIL PROTECTED] wrote:
+1 on visual review. Anyone have a win9x install handy to verify
that this works? Sorry, none of my multiboots still boot 9x.
I've personally tested it on WIN98 (virtual machine).
Davi Arnaut wrote:
Hi
dirty to me... is there some better way?
How about: conn_rec-cs-pfd-desc ?
--
Davi Arnaut
On Wed, 3 May 2006 14:31:06 +0200 (SAST)
Graham Leggett [EMAIL PROTECTED] wrote:
On Wed, May 3, 2006 1:26 am, Davi Arnaut said:
Then you will end up with code that does not meet the requirements of
HTTP, and you will have wasted your time.
Yeah, right! How ? Hey, you are using
On Wed, 3 May 2006 11:39:02 -0700
Roy T. Fielding [EMAIL PROTECTED] wrote:
On May 3, 2006, at 5:56 AM, Davi Arnaut wrote:
On Wed, 3 May 2006 14:31:06 +0200 (SAST)
Graham Leggett [EMAIL PROTECTED] wrote:
On Wed, May 3, 2006 1:26 am, Davi Arnaut said:
Then you will end up with code
On Tue, 2 May 2006 11:22:31 +0200 (MEST)
Niklas Edmundsson [EMAIL PROTECTED] wrote:
On Mon, 1 May 2006, Davi Arnaut wrote:
More important, if we stick with the key/data concept it's possible to
implement the header/body relationship under single or multiple keys.
I've been hacking
are trying to get it more simple as possible by separating the storage
layer from the protocol layer.
--
Davi Arnaut
Davi Arnaut
On Tue, 2 May 2006 17:22:00 +0200 (SAST)
Graham Leggett [EMAIL PROTECTED] wrote:
On Tue, May 2, 2006 7:06 pm, Davi Arnaut said:
There is not such scenario. I will simulate a request using the disk_cache
format:
The way HTTP caching works is a lot more complex than in your example, you
On Tue, 02 May 2006 23:31:13 +0200
Graham Leggett [EMAIL PROTECTED] wrote:
Davi Arnaut wrote:
The way HTTP caching works is a lot more complex than in your example, you
haven't taken into account conditional HTTP requests.
I've taken into account the actual mod_disk_cache code
On Wed, 03 May 2006 01:09:03 +0200
Graham Leggett [EMAIL PROTECTED] wrote:
Davi Arnaut wrote:
Graham, what I want is to be able to write a mod_cache backend _without_
having to worry about HTTP.
Then you will end up with code that does not meet the requirements of
HTTP, and you
On Mon, 01 May 2006 14:51:53 +0200
Graham Leggett [EMAIL PROTECTED] wrote:
Davi Arnaut wrote:
mod_cache need not be HTTP specific, it only needs the ability to cache
multiple entities (data, headers) under the same key, and be able to
replace zero or more entities independently
.
--
Davi Arnaut
will be gone, think that we will assemble the
HTTP-specific part and generalize the storage part.
--
Davi Arnaut
semantics won't
change, yet!
--
Davi Arnaut
to cache key/value pairs. The key/value format is up to
the mod_cache user.
--
Davi Arnaut
According to RFC 2616, whenever a connection to a upstream server fails due to a
timeout (or DNS failure) the proxy server should return with status 504 (Gateway
Timeout).
--
Davi Arnaut
Index: mod_proxy_http.c
the request.
--
Davi Arnaut
1 - 100 of 110 matches
Mail list logo