[jira] Updated: (MODPYTHON-78) No support for Apache 2.2 yet

2005-12-03 Thread Nicolas Lehuen (JIRA)
 [ http://issues.apache.org/jira/browse/MODPYTHON-78?page=all ]

Nicolas Lehuen updated MODPYTHON-78:


Summary: No support for Apache 2.2 yet  (was: No support for Apache 2.1 yet)

Now that Apache 2.2 is out, and mod_python 3.2 close to release, maybe it's 
time to have a look at this for mod_python 3.3 ?

 No support for Apache 2.2 yet
 -

  Key: MODPYTHON-78
  URL: http://issues.apache.org/jira/browse/MODPYTHON-78
  Project: mod_python
 Type: Bug
   Components: core
 Versions: 3.2
 Reporter: Nicolas Lehuen
  Fix For: 3.3


 See http://article.gmane.org/gmane.comp.apache.mod-python.devel/1425 for some 
 remarks by Jorey Bump, raised during the 3.2.1-BETA tests.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



Re: [jira] Updated: (MODPYTHON-78) No support for Apache 2.2 yet

2005-12-03 Thread Jim Gallacher

Nicolas Lehuen (JIRA) wrote:

 [ http://issues.apache.org/jira/browse/MODPYTHON-78?page=all ]

Nicolas Lehuen updated MODPYTHON-78:


Summary: No support for Apache 2.2 yet  (was: No support for Apache 2.1 yet)

Now that Apache 2.2 is out, and mod_python 3.2 close to release, maybe it's 
time to have a look at this for mod_python 3.3 ?



+1


Re: What's in a URL ?

2005-12-03 Thread Nicolas Lehuen
Hi Jim,1. I chose the colours to aid in reading, but I tried to regroup items logically. For example I chose a weird orange for environment variables. Anyway, I'm thinking that I could use colors to represent the dependencies (what data comes from the client, what data comes from the server, and after this dichotomie, a set of colors for Apache-level APIs, CGI env-vars, and mod_python). That's a work in progress...
2. I don't know - I did not made this to distribute, just to fuel our discussion about the various way to get information about the request, and the mess it can cause. But if you guys find it worth publishing, why not.
Regarding 2c, I solved the problem by dropping OpenOffice and doing it in HTML (I exported from OO to HTML and cleaned up the mess manually). I've checked in the result in the Doc directory.Regards,Nicolas
2005/12/3, Jim Gallacher [EMAIL PROTECTED]:
Nicolas Lehuen wrote: Hi, Following last week's discussion about the various parts composing an URL and how to get them from Apache and/or mod_python, here is my first try at a chart that sums up what we know. It show a sample URL and how
 different components of the application server see it or contribute to it.Interesting view. Couple of questions:1. Any significance to the colours or are they just to aid in reading?2. How do you envisage this being distributed?
a. On the mod_python website?b. Once it's complete, rewrite it in LateX so it's integrated withthe generated html-docs?c. Bundle with html-docs but generate the file (html or pdf) fromthe ods source?
 From the perspective of creating the releases 2.b is likely best, butmaking this kind of table in LaTeX goes *way* beyond my skills.If you see us using 2.c then we need to think about how to automate
openoffice to create the file during the packaging.Jim


Re: Apache 2.2 released - apparently breaks the mod API compatibility with 2.0

2005-12-03 Thread Nicolas Lehuen
I'll have to wait for the Win32 source code tree to be released to build it and test your patch. Hopefully it'll be out soon.Is there a wait to use macro directives so that we don't need to maintain two separate branches ? A define that we could pass when building mod_python to select the Apache version we're building against, maybe ?
Regards,Nicolas2005/12/3, Jorey Bump [EMAIL PROTECTED]:
Nicolas Lehuen wrote: http://httpd.apache.org/download.cgi Apache 2.2 add-in modules are not compatible with Apache 2.0 or 1.3 modules. If you are running third party add-in modules, you will need to
 obtain new modules written for Apache 2.2 from that third party before you attempt to upgrade from Apache 2.0. Great, now we're having to support three separate version : mod_python
 2.7 for Apache 1.3.x (though it's a bit unsupported now, isn't it ?), mod_python 3.2 for Apache 2.0.x and mod_python 3.2.x for Apache 2.2... It's not a big surprise, though, since we already have this issue :
 http://issues.apache.org/jira/browse/MODPYTHON-78 Does anyone knows anything about the API changes ?I've attached a source tree patch against 
3.2.5b that will work withapache 2.2.0. It still fails one test in the test suite, but seems toload fine in apache and run modules in Publisher.To apply the patch, move into the source code directory and issue the
following command: patch -p1  /path/to/mod_python-3.2.5b.patchSorry, I don't do Apache on Windows. Could someone follow up withinstructions for that platform (beyond install Cygwin)? :)
Here are some key points:APR_STATUS_IS_SUCCESS is gone.apr_sockaddr_port_get is gone.mod_auth is now mod_auth_basic.auth_module is now auth_basic_module.Affected files are:src/connobject.c
src/filterobject.ctest/test.pyTo fix the APR_STATUS_IS_SUCCESS issue, I deleted the code that used it,without replacement. That may be suboptimal, if the code serves a usefulpurpose. :)
To fix the apr_sockaddr_port_get issue, I restored makesockaddr fromconnobject.c in 3.2.1b. This was obviously replaced for a reason inlater versions, with the unfortunate choice of a deprecated functionfrom the API. The original issue needs to be revisited to determine a
more compatible solution.I'm unable to diagnose the remaining failure in the test suite: * Testing internally (status messages go to error_log)F==
FAIL: test_internal (__main__.PerRequestTestCase)--Traceback (most recent call last): File test.py, line 1249, in test_internal
 self.fail(Some tests failed, see error_log)AssertionError: Some tests failed, see error_log--Ran 43 tests in 61.161s
FAILED (failures=1)FStopping Apache.../usr/local/apache2.2.0/bin/httpd -k stop -f/home/jorey/src/mod_python-3.2.5b/test/conf/test.conf==
FAIL: testPerRequestTests (__main__.PerInstanceTestCase)--Traceback (most recent call last): File test.py, line 1805, in testPerRequestTests
 self.failUnless(result.wasSuccessful())AssertionError--Ran 6 tests in 107.536sFAILED (failures=1)The error log includes this line at the end:
logs/error_log:[Sat Dec 03 15:31:15 2005] [error] [client 127.0.0.1]..F.\n==\nFAIL:test_server_members
(tests.SimpleTestCase)\n--\nTraceback(most recent call last):\nFile/home/jorey/src/mod_python-3.2.5b/test/htdocs/tests.py, line 446, in
test_server_members\nself.fail(server.keep_alive_timeout should be15.0)\nAssertionError: server.keep_alive_timeout should be15.0\n\n--\nRan
8 tests in 0.336s\n\nFAILED (failures=1)\ndiff -uNr mod_python-3.2.5b/src/connobject.c mod_python-3.2.5b.new/src/connobject.c--- mod_python-3.2.5b/src/connobject.c2005-11-12 13:59:35.0
 -0500+++ mod_python-3.2.5b.new/src/connobject.c2005-12-03 15:26:27.0 -0500@@ -78,12 +78,6 @@ rc = ap_get_brigade(c-input_filters, bb, mode, APR_BLOCK_READ, bufsize); Py_END_ALLOW_THREADS;
-if (! APR_STATUS_IS_SUCCESS(rc)) {-PyErr_SetObject(PyExc_IOError,-PyString_FromString(Connection read error));-return NULL;-}- /*
* loop through the brigade reading buckets into the string*/@@ -312,24 +306,17 @@***utility func to make a socket address*/- static PyObject *makesockaddr(struct apr_sockaddr_t *addr)
-{+{ PyObject *addrobj = makeipaddr(addr); PyObject *ret = NULL; if (addrobj) {-apr_port_t port;-if(apr_sockaddr_port_get(port, addr)==APR_SUCCESS) {-ret = Py_BuildValue(Oi, addrobj, port );
-}-else {-PyErr_SetString(PyExc_SystemError,apr_sockaddr_port_get failure);-}+ret = Py_BuildValue(Oi, addrobj, 

Re: Apache 2.2 released - apparently breaks the mod API compatibility with 2.0

2005-12-03 Thread Jorey Bump

Nicolas Lehuen wrote:

Is there a wait to use macro directives so that we don't need to 
maintain two separate branches ? A define that we could pass when 
building mod_python to select the Apache version we're building against, 
maybe ?


If it's possible to make the code in connobject.c  filterobject.c 
compatible with both Apache 2.0  2.2, then the only unavoidable 
incompatibility is in test.py (with the auth stuff). Since that script 
already calls httpd, it could discover the version with httpd -v (unless 
mod_python has an internal record of this, already) and adapt accordingly.


These diffs were really tiny to get a seemingly working version to run 
with Apache 2.2. Finding compatible alternatives to the deprecated items 
will deliver better results than version sniffing, IMHO. I just wish I 
was bright enough to comprehend what the lines in question actually do. :P


Re: Apache 2.2 released - apparently breaks the mod API compatibility with 2.0

2005-12-03 Thread Jim Gallacher

Nicolas Lehuen wrote:
I'll have to wait for the Win32 source code tree to be released to build 
it and test your patch. Hopefully it'll be out soon.


Is there a wait to use macro directives so that we don't need to 
maintain two separate branches ? A define that we could pass when 
building mod_python to select the Apache version we're building against, 
maybe ?


I'm sure there must be. If not perhaps we roll our own using some 
configure option, eg --with-apache2.2. I think it would be a big mistake 
to try and maintain 2 branches for apache 2.0 and 2.2. They can't be 
*that* different (and judging by Jorey's patch they are not).


Jim




Upload hooks

2005-12-03 Thread Franck Mangin
I am trying to use the UPLOAD_HOOK in 2.06 to track the progress of the
upload. I understand the api doc. is out of sync, but from the Changes notes
I gathered something like the following should work:

my $req = Apache2::Request-new($r ,
UPLOAD_HOOK = sub {
$log-info(PARAMS:  . join(',',
@_));
my ($upload, $data_len) = @_;
$size_received = $size_received +
$data_len;
})
|| $log-error(UP: could not create Apache2::Request);

Unfortunately it looks like my hook receives only one argument, the name of
the file being uploaded. The log_info above generates this:

[info] [client 192.168.0.117] PARAMS: 10M.bin,, 

I have also tried accessing $upload-size in the hook, without success -
$upload seems to be a scalar.
Any hint on how to achieve this would be greatly appreciated!

Thanks,
Franck



RE: Upload hooks

2005-12-03 Thread Franck Mangin
Had a look at the glue source code, and it looks like the hook gets passed a
Param, and a data buffer. Using

 my ($upload, $buffer) = @_;
 $received = $received + length($buffer);

solved my problem...

Regards,
Franck

 -Original Message-
 From: Franck Mangin [mailto:[EMAIL PROTECTED] 
 Sent: Saturday, December 03, 2005 3:38 PM
 To: apreq-dev@httpd.apache.org
 Subject: Upload hooks
 
 I am trying to use the UPLOAD_HOOK in 2.06 to track the 
 progress of the upload. I understand the api doc. is out of 
 sync, but from the Changes notes I gathered something like 
 the following should work:
 
 my $req = Apache2::Request-new($r ,
   UPLOAD_HOOK = sub {
   $log-info(PARAMS:  . 
 join(',',
 @_));
   my ($upload, $data_len) = @_;
   $size_received = 
 $size_received +
 $data_len;
   })
   || $log-error(UP: could not create Apache2::Request);
 
 Unfortunately it looks like my hook receives only one 
 argument, the name of the file being uploaded. The log_info 
 above generates this:
 
 [info] [client 192.168.0.117] PARAMS: 10M.bin,, 
 
 I have also tried accessing $upload-size in the hook, 
 without success - $upload seems to be a scalar.
 Any hint on how to achieve this would be greatly appreciated!
 
 Thanks,
 Franck
 



Re: svn commit: r351702 - /httpd/httpd/branches/2.2.x/Makefile.win

2005-12-03 Thread André Malo
* Joshua Slive wrote:

 I highly doubt that many people use the bundled docs.  They are not
 browsable on a default configuration and certainly require the server to
 be running before they are usable, which means they are of little help
 to upgraders.  We also build windows-help format docs, which would be
 much more appropriate for win32 users, but I don't think we have those
 for 2.2 yet.

Ah yes. This is, because my box crashed some time ago and I don't have a 
working windows installation yet. Anyone around here with about an hour to 
spare for booting (!) into each language (de, en, es, ja, ko) and building 
the chm docs? I'm happy to help through the process. (The necessary 
settings and requirements are also described the `build` help).

nd
-- 
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook!   Ook! Ook.


Re: buildconf against installed APR

2005-12-03 Thread Graham Leggett

Luc Pardon wrote:

Both apr and httpd ship with generic spec files included. The apr spec 
files are designed so that you can install apr-0.x and apr-1.x side by 
side without conflicts,


   As far as the included apr spec files are concerned, this is simply
not true. 


   Last time I looked, the spec files for 0.9.7 and 1.2.2 use the same
package names, i.e. apr and apr-util. 


To install two major versions of the same package, use the following to 
install:


rpm -i packagename.rpm

Packages in the v0.x branch and the v1.x branches are designed not to 
conflict with each other.


For examples of another RPM package that is installed by default in this 
way, see the kernel RPMs.



   But because of the name, rpm will consider apr-1.2.2 simply a later
version of apr-0.9.7, exactly as told. Therefore if you install 1.2.2 it
will obligingly _remove_  all the 0.9.7 stuff, including all the apr-0
dirs and their content. Bye-bye side-by-side.


This will only happen if you use the rpm -U (meaning upgrade) instead 
of rpm -i (meaning install).



tell me that, as a workaround, I can install
with rpm --install instead of the normal rpm --upgrade or rpm
--freshen but that is not standard, normally only used for kernel
installs, and dangerous in just about all other cases. 


It's not dangerous at all, and quite standard. See the RPM docs for details.


   And there is no need for a workaround either. The apr is not the only
one that must be able to support multiple versions side-by-side.
Standard practice is to use different package names by including the
version number _in_ the package name (eg apr0 and apr1), as Oden
correctly did.


This is an ugly kludge. There are two techniques to handle this. One is 
the kernel way, the second is by publishing a -compat library for the 
old version. As -compat libraries typically don't have -devel 
packages, the kernel style install was chosen.



   As to the included httpd.spec, that is not generic either, if I may
say so. 


   As I pointed out a few weeks ago, it does not even build out of the
box on a clean machine. To reiterate: it mandates a separate,
pre-existing install of apr/apr-util or else it dies.


That is the intention.

The APR is a completely separate library, it has no business being 
binary packaged with httpd. If it is, how do you install a binary 
package of httpd+apr with a binary package of subversion+apr? You don't, 
as you get conflicts.


APR is packaged in the httpd tarball for historical and convenience 
reasons for people building from source.



The apr code is
right there in the httpd tarball but it has no purpose as you can't use
it, you have to go get apr rpm packages elsewhere. Either apr is bundled
or it is not bundled, one can't have it both ways.


You can.


   I know (or at least have the impression) that you feel strongly about
the spec files that you contributed, and I don't want to offend. But
there is definitely room for improvement, to say the least. A good spec
file - especially if it comes with the product - should build
everywhere, under any circumstances, not just on the author's machine
(and please don't take this as a personal attack, it is not meant as
one). 


If it doesn't build on your machine, I definitely want to hear about it, 
but so far it seems that it does build, the package just isn't arranged 
how you want it.


I can assure you that a lot of thought has gone into the APR and the 
Solaris packaging, for the purpose of launching APR as the standalone 
package that it should be. There is a lot of precedence for the current 
layout (the RPMs were originally Redhat RPMs, with the patches and a lot 
of the file moving removed).


Regards,
Graham
--


smime.p7s
Description: S/MIME Cryptographic Signature


Re: Directions for Win32 binary httpd

2005-12-03 Thread William A. Rowe, Jr.

Ok, I've come to a conclusion; for the coming release, only msvcrt.dll
builds under Visual C++ 6.0 make sense as our binary distribution.

I'm not suggesting we dismiss the potential win of supporting our Studio
2005 compiler users(!)  But let's quickly compare...

 . binary users generally aren't building modules, they need to plug into
   widely distributed binary components.

 . source users generally can build anything from source, if they need to.
   If they want to interface several components, they can build our source
   tarball with any compiler they like, including the 1 year free license
   of Studio 2005.

 . it's pretty trivial to build/install httpd with one of several pretty
   minimal unix toolchains available.

It seems that most of the communites are still in VC 6.  Remember the key
reason we keep using it, MS dropped support for exporting makefiles.  With
no makefiles, you are roped into supporting only version x or newer Studio
products.  With .dsp/.dsw solutions, we can export makefiles on the old
reliable VC 6, and users can load/convert these into Studio 2000/03/05.

So I'll move ahead with all the msi tweaks required for our changed files,
and we can reevaluate the state of things 6 mos or a year from now when we
are almost ready to ship Apache X :)

That's my conclusion, I'm still more than happy to hear out dissenting
opinions.  Speak up quick, though, planning to have a package up in /dev/dist
by Sunday night for review, and push it out sometime early next week.

Bill



apr_socket_sendfile not found on OS/X?

2005-12-03 Thread Ian Holsman

Hi.

I just checked out the latest trunk of apr  httpd on my mac, and can't 
build it anymore. it is complaining about apr_socket_sendfile not being 
defined.


so I checked .. and apr.h has APR_HAS_SENDFILE as 0.

the problem is sendfile_nonblocking calls apr_socket_sendfile ;(



Re: Comments on Authz_Provider implementation (was: Re: svn commit: r351547 - in /httpd/h)

2005-12-03 Thread Andreas Lindström
 Require directives in the form of:

 require user joe bob jane
 require ldap-user jmanager
 require ldap-group bigboys
 require valid-user

I might have misunderstood something here, but this sounds like you
are proposing to move all directives into the specific files for the
authproviders. (This sounds like a good idea btw, as it most likely
will make the auth system easier to follow since all provider specific
routines are in the providers own file.)

If this is indeed what is intended, then the thing that should be
needed in mod_auth_basic and mod_auth_digest is some kind of wrapper
function that determines which provider that is active and then calls
the functions that are provider specific. Or possibly a function that
retrieves the result from the provider and then applies it in an
authtype specific way. The last one is probably the way to go (if
possible) as it will mean less authtype specific code in the provider
files.

However, if you want to run several auth providers you will probably
need some kind of Satisfy directive somewhere. An idea i previously
brought up was to place the directive in mod_authn_alias (that
probably should change name then, perhaps mod_authn_instance or
something) and use a syntax similar to Satisfy ((instance1 
instance2) | instance3)  !passwd  as this will add a great deal of
flexibility to the auth system.
If you leave mod_authn_alias to work as it does atm (as an optional
part) you could still declare the access checks directly in the
location that needs it, and you wouldnt need to use Satisfy for that
either if the design is made carefully to allow interswapping to occur
between the Satisfy directive in the alias module and the Require
directive from the provider files (or some check in basic, depending
on how you design it).

If the auth providers all handle their own verification of users based
on the require directives all this satisfy directive would need to do
is get the results from the auth providers own checks and run the
operations on it (if any). This would effectively make it possible to
use several different authproviders and declare them as instances
(pretty much the same syntax as mod_authn_alias uses now) and then use
the satisfy directive to just calculate the access rights.

Possibly these instances could be made specific to an authtype as
well, which would allow users of httpd to mix different auth types and
then only use the satisfy directive to check if the user has access or
not.

This would also make the config file less complicated to read as all
instances could be declared in one place and then referenced from the
Virtual Hosts or wherever you want to use them. It would also make it
possible to add a specific file or other provider with users you DONT
want to be able to log in, for example the passwd file where all
system wide users and others are entered, or possibly just a new
provider where you enters all the users that has been banned or
whatever.

Something like:

AuthBasicProvider ldap1 file1 sql1 passwd
AuthDigestProvider prov2
Satisfy ((ldap1 | file1 | sql1) | prov2)  !passwd

or:

AuthProvider ldap1 file1 sql1 passwd prov2
Satisfy ((ldap1 | file1 | sql1) | prov2)  !passwd

would be all thats needed to exist in the folder/file/location that
the access rules apply for. (Depending on if the auth type is defined
in the instances or if the modules for auth_basic/auth_digest will
define which instances are of which type.)

 How could we fit IP restrictions into this?

 require ip !192.168.0.0/24 10.0.1.5

 Possibly have deny/allow from semantics 'silently' convert into require
 directives?  Might be able to salvage backwards compat this way.

As for the ip access, it could be made into a pure bread auth module
if there was the will for it to happen as they would all handle their
own auth checks (or possibly a common auth function in some common lib
for all providers if theres alot of them that uses the same rules for
checking access. (this would make for less duplicate code, but
possibly make it less straightforward as well)

Another idea for ip access instances might be an idea to use Allow and
Deny, but in a different way:

Allow 10.0.1.5
Deny 192.168.0.0/24
Deny 100.0.0.0 255.255.255.255

or something like the above. This would allow one instance of the ip
access to include as many or as few of those directives as needed.
(And possibly also make it easier for users to understand the usage of
the ip access checker.)

The instances of providers would be handy here too as all provider
specific things would be gathered at one place, easier to get an
overlook over the auth rules and much less scrolling of potentially
(very!) long Virtual Host declarations (especially if you have some
rewrite rules in it). As for the ip access it would most likely need
the possibility of using several requires (or, see allow, deny above)
in one instance (shouldnt be a problem if the provider themselves
handle the authorization) or you could just use one 

mod_auth[nz]_dbd password caching

2005-12-03 Thread Phil Endecott

Dear All,

First of all, congratulation on the release of 2.2.

I use mod_auth_pgsql at http://anyterm.org/my.html, and found a problem 
earlier in the year.  To get reasonable performance you need to use the 
module's caching mechanism, but this cache is not flushed or updated 
when the database changes.  So things don't work properly when the user 
changes their password.


I started to think about fixing it myself but quickly realised that both 
the database and authentication frameworks were changing in 2.1+ and 
decided to wait before doing anything.  I now see that 2.2 has 
mod_auth[nz]_dbd - great!


However, as far as I can see from 
http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html and the source, 
this new module doesn't do any caching.  Is this true?  To get the sort 
of performance that I need for my site I really need in-memory caching 
of passwords, but I also need to solve mod_auth_pgsql's non-updating 
problem.  The solution to this is to use PostgreSQL's asynchronous 
notification mechanism: the module issues a LISTEN command and is then 
notified when the password table changes.  I don't know if the APR DB 
interface has any support for this (it doesn't seem to be documented at 
all at http://apr.apache.org/docs/apr-util/modules.html); even if it 
does, it is not portable to other databases.


Has anyone looked at this?  If no-one is working on this and you think 
it would be a useful feature to add, I may be able to write something 
with a bit of help.


Cheers,

--Phil.






Re: mod_auth[nz]_dbd password caching

2005-12-03 Thread Nick Kew
On Saturday 03 December 2005 11:39, Phil Endecott wrote:

 Has anyone looked at this?  If no-one is working on this and you think
 it would be a useful feature to add, I may be able to write something
 with a bit of help.

This is beyond the scope of what we've done, which is why you didn't
find it:-)  Please do go ahead and look at it.  I look forward to your
improvements.

-- 
Nick Kew


Re: Directions for Win32 binary httpd

2005-12-03 Thread Steffen

From a build standpoint I agree.


But VC++ 2005 has improvements in Performance, MemoryManagement etc.
The optimizer seems  to improve the performance quite significantly.

Contrary to what Microsoft would like, you can built the server with the
needed DLLs statically so there is nothing to ship and nothing to install.
The Sambar Server( www.sambar.com ) uses this approach.


Steffen

- Original Message - 
From: William A. Rowe, Jr. [EMAIL PROTECTED]

To: dev@httpd.apache.org
Sent: Saturday, December 03, 2005 10:17 AM
Subject: Re: Directions for Win32 binary httpd



Ok, I've come to a conclusion; for the coming release, only msvcrt.dll
builds under Visual C++ 6.0 make sense as our binary distribution.

I'm not suggesting we dismiss the potential win of supporting our Studio
2005 compiler users(!)  But let's quickly compare...

 . binary users generally aren't building modules, they need to plug into
   widely distributed binary components.

 . source users generally can build anything from source, if they need to.
   If they want to interface several components, they can build our source
   tarball with any compiler they like, including the 1 year free license
   of Studio 2005.

 . it's pretty trivial to build/install httpd with one of several pretty
   minimal unix toolchains available.

It seems that most of the communites are still in VC 6.  Remember the key
reason we keep using it, MS dropped support for exporting makefiles.  With
no makefiles, you are roped into supporting only version x or newer Studio
products.  With .dsp/.dsw solutions, we can export makefiles on the old
reliable VC 6, and users can load/convert these into Studio 2000/03/05.

So I'll move ahead with all the msi tweaks required for our changed files,
and we can reevaluate the state of things 6 mos or a year from now when we
are almost ready to ship Apache X :)

That's my conclusion, I'm still more than happy to hear out dissenting
opinions.  Speak up quick, though, planning to have a package up in
/dev/dist
by Sunday night for review, and push it out sometime early next week.

Bill






Re: Directions for Win32 binary httpd

2005-12-03 Thread Olaf van der Spek
On 12/3/05, William A. Rowe, Jr. [EMAIL PROTECTED] wrote:
 It seems that most of the communites are still in VC 6.  Remember the key
 reason we keep using it, MS dropped support for exporting makefiles.  With
 no makefiles, you are roped into supporting only version x or newer Studio
 products.  With .dsp/.dsw solutions, we can export makefiles on the old
 reliable VC 6, and users can load/convert these into Studio 2000/03/05.

So why not distribute the VC6 dsp/dsw files but (officially) build
with VS05 yourself?


Re: apr_socket_sendfile not found on OS/X?

2005-12-03 Thread Paul Querna

Ian Holsman wrote:

Hi.

I just checked out the latest trunk of apr  httpd on my mac, and 
can't build it anymore. it is complaining about apr_socket_sendfile 
not being defined.


so I checked .. and apr.h has APR_HAS_SENDFILE as 0.

the problem is sendfile_nonblocking calls apr_socket_sendfile ;(

mac/darwin doesn't support sendfile at all.

I don't know how you are getting sendfile_nonblocking called at all, 
since it is all wrapped by #if APR_HAS_SENDFILE


-Paul


Re: What's in a URL ?

2005-12-03 Thread Daniel J. Popowich

Nicolas Lehuen writes:
 As for the colophon : I initially built this chart on Excel 2003, then
 feeling a bit guilty, I decided to switch to OpenOffice 2 (developer
  

Guilt is good for the soul, my son.  Shun the M$ beast...this is good
for the soul.

As for your pdf...after opening it in xpdf it was approximately the
size of a pencil eraser.  Zooming 400% makes it somewhat readable.
Any possibility of spitting it out to html and posting it somewhere?

Daniel Popowich
---
http://home.comcast.net/~d.popowich/mpservlets/



Re: Directions for Win32 binary httpd

2005-12-03 Thread TOKILEY

As someone who knows all of the Windows build platforms well...
my 2 cents jives with your decision, Bill.

Using MSVC 6.0 at this point and keeping the makefiles
is the only 'sane' thing to do at this point.

There are ISSUES with just about any of the newer platforms
including the obvious "where o where did the makefiles go" stuff.

Someone said it a few messages ago ( I think it was you, Bill ).
httpd is an OPEN SOURCE project ( --keyword=source ).

Let other people who need/must/or just want to use some other
build environment have at it with other and find/solve the
issues and post solutions back to the project. That's how it's
supposed to work.

I know Apache is pretty much your "full time job", Bill... but that
still doesn't mean you're supposed to do EVERYTHING.

Yours...
Kevin

PS: Whatever became of that nifty perl script nmake makefile-to-project-file
conversion script you were working on? It was almost working fine
at one point? Maybe you should post that into a distribution and let
some other Perl wizard take it into the end zone. Might be needed later.


In a message dated 12/3/2005 3:19:17 AM Central Standard Time, [EMAIL PROTECTED] writes:


Ok, I've come to a conclusion; for the coming release, only msvcrt.dll
builds under Visual C++ 6.0 make sense as our binary distribution.

I'm not suggesting we dismiss the potential win of supporting our Studio
2005 compiler users(!) But let's quickly compare...

 . binary users generally aren't building modules, they need to plug into
 widely distributed binary components.

 . source users generally can build anything from source, if they need to.
 If they want to interface several components, they can build our source
 tarball with any compiler they like, including the 1 year free license
 of Studio 2005.

 . it's pretty trivial to build/install httpd with one of several pretty
 minimal unix toolchains available.

It seems that most of the communites are still in VC 6. Remember the key
reason we keep using it, MS dropped support for exporting makefiles. With
no makefiles, you are roped into supporting only version x or newer Studio
products. With .dsp/.dsw solutions, we can export makefiles on the old
reliable VC 6, and users can load/convert these into Studio 2000/03/05.

So I'll move ahead with all the msi tweaks required for our changed files,
and we can reevaluate the state of things 6 mos or a year from now when we
are almost ready to ship Apache X :)

That's my conclusion, I'm still more than happy to hear out dissenting
opinions. Speak up quick, though, planning to have a package up in /dev/dist
by Sunday night for review, and push it out sometime early next week.

Bill





Re: Directions for Win32 binary httpd

2005-12-03 Thread William A. Rowe, Jr.

Steffen wrote:

From a build standpoint I agree.


But VC++ 2005 has improvements in Performance, MemoryManagement etc.
The optimizer seems  to improve the performance quite significantly.

Contrary to what Microsoft would like, you can built the server with the
needed DLLs statically so there is nothing to ship and nothing to install.
The Sambar Server( www.sambar.com ) uses this approach.


Steffan, you aren't considering the structure of httpd(!)  Loading three
dozen modules and several libraries, each with embedded Clib functions is
quite sub-optimal ;-)  For a monolithic program, I agree with your assessment.

Of course, feel free to build under VC 2005 (freely for the next year!).
We are talking about maximum flexibility for distribution purposes, only.

Bill


Re: Directions for Win32 binary httpd

2005-12-03 Thread William A. Rowe, Jr.

Olaf van der Spek wrote:

On 12/3/05, William A. Rowe, Jr. [EMAIL PROTECTED] wrote:


It seems that most of the communites are still in VC 6.  Remember the key
reason we keep using it, MS dropped support for exporting makefiles.  With
no makefiles, you are roped into supporting only version x or newer Studio
products.  With .dsp/.dsw solutions, we can export makefiles on the old
reliable VC 6, and users can load/convert these into Studio 2000/03/05.


So why not distribute the VC6 dsp/dsw files but (officially) build
with VS05 yourself?


Because, as noted, it's not compatible with binaries precompiled for most
languages that users would like to load into the running server, chief
amoung them being perl.  (The PHP module is far less invasive, and generally
follows the portability rules I set forth in another note, w.r.t. not handing
off clib resources from httpd to modphp and back.)

Bill


Re: Directions for Win32 binary httpd

2005-12-03 Thread Mladen Turk

[EMAIL PROTECTED] wrote:


As someone who knows all of the Windows build platforms well...
my 2 cents jives with your decision, Bill.

Using MSVC 6.0 at this point and keeping the makefiles
is the only 'sane' thing to do at this point.



Couple of months ago I've proposed a 'hand-written'
nmake system containing of a single common .inc file
and actual implementation (for APR).
It can be used to build the APR as dll/lib on
any platform/cpu/compiler starting from vc6 up.

The major fear was the maintenance.
Well, the number of modules or files that gets
added to the core is so small, and I found it's
easier to copy/paste/rewrite_few_lines rather then
open .dsw and the point-click couple of hundred times.

Since the similar system works just fine for Netware
I see no reason why that can not be implemented for
windows too.

The days when there was only win32/i386 are long time
gone.

Regards,
Mladen.


Re: Directions for Win32 binary httpd

2005-12-03 Thread William A. Rowe, Jr.

[EMAIL PROTECTED] wrote:


PS: Whatever became of that nifty perl script nmake makefile-to-project-file
conversion script you were working on? It was almost working fine
at one point? Maybe you should post that into a distribution and let
some other Perl wizard take it into the end zone. Might be needed later.


I believe the subversion project uses this model (it's actually in Python.)
Some of that was, IIRC, checked into the apr tree.


Re: apr_socket_sendfile not found on OS/X?

2005-12-03 Thread Paul Querna

Paul Querna wrote:

Ian Holsman wrote:

Hi.

I just checked out the latest trunk of apr  httpd on my mac, and 
can't build it anymore. it is complaining about apr_socket_sendfile 
not being defined.


so I checked .. and apr.h has APR_HAS_SENDFILE as 0.

the problem is sendfile_nonblocking calls apr_socket_sendfile ;(

mac/darwin doesn't support sendfile at all.

I don't know how you are getting sendfile_nonblocking called at all, 
since it is all wrapped by #if APR_HAS_SENDFILE


-Paul

Meh.

Someone didn't wrap sendfile_nonblocking itself under APR_HAS_SENDFILE 
when they re-factored it :-)


Fixed in trunk/r351997.

-Paul


What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Paul Querna

My intention is for this to be a wide open brainstorming thread.

I expect that we will be able to discuss several ideas in much more 
detail at the Hackathon next week, but I really want to get all ideas 
'on the table'.


I have a few things I would like to see, but I am sure there are perhaps 
hundreds of other major features that other people want.  It helps to 
know what everyone else is thinking about new features, rather than one 
person going off an doing it all by themselves. (not that I'll stop 
anyone from that either).


Here is my list:

* Async/Event MPM: Complete Async pipeline for static files.  I believe 
we can seriously give every existing single-threaded-event-based server 
a run for their money on every existing benchmark.  Toss in some dynamic 
content, and a hybrid Event/Worker has serious potential.  Some of this 
work is ongoing in the async-read dev branch, but there is plenty more 
to do.


* A Perchild MPM/replacement:  The SoC  perchild-replacement project 
didn't work out.  We have a basic design that is sound, but we need to 
actually write the code.


* HTTP Removed from the core:  I would like to be able to build with 
--disable-http. Sounds crazy, but it will hopefully shrink the core, and 
help us improve other protocol handlers like mod_ftp and mod_smtpd.


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Jim Jagielski
Paul Querna wrote:
 
 * Async/Event MPM: Complete Async pipeline for static files.  I believe 
 we can seriously give every existing single-threaded-event-based server 
 a run for their money on every existing benchmark.  Toss in some dynamic 
 content, and a hybrid Event/Worker has serious potential.  Some of this 
 work is ongoing in the async-read dev branch, but there is plenty more 
 to do.
 

Depending on the final impl, whether this is 2.4 or 3.0
would depend on the required API changes. But +1 as the
next logical step.

 * A Perchild MPM/replacement:  The SoC  perchild-replacement project 
 didn't work out.  We have a basic design that is sound, but we need to 
 actually write the code.
 

+1 as a VERY useful thing for 2.2/2.4

 * HTTP Removed from the core:  I would like to be able to build with 
 --disable-http. Sounds crazy, but it will hopefully shrink the core, and 
 help us improve other protocol handlers like mod_ftp and mod_smtpd.
 

:)

-- 
===
 Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
   If you can dodge a wrench, you can dodge a ball.


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Nick Kew
On Saturday 03 December 2005 19:36, Paul Querna wrote:
 My intention is for this to be a wide open brainstorming thread.

 I expect that we will be able to discuss several ideas in much more
 detail at the Hackathon next week, but I really want to get all ideas
 'on the table'.

Alas, I shall be remote.

 Here is my list:

 * Async/Event MPM:

Sounds fine for a 2.4.

 * A Perchild MPM/replacement:

Ditto.  But we don't have a track record of round tuits.

 * HTTP Removed from the core:

Probably a 3.0 thing.  What's the request_rec - and everything that
revolves around it - going to look like?

One thing we really should avoid is another big API break like 1.x-2.x.
Third-party modules should continue to work with little or no rewriting.

Some more thoughts;

* Authz cleanup (already started in authz-dev)
* Flexible handlers using ap_provider
  c.f. http://marc.theaimsgroup.com/?l=apache-httpd-devm=112843906920434w=2
* Configuration revamp - enable reconfiguration (ideally per-vhost)
  without a server restart.

-- 
Nick Kew


httpd 2.2 missing as product in bugzilla

2005-12-03 Thread Ruediger Pluem
Hi all,

I just worked on a bug report and noticed that there is no setting for Apache 
http-2.2 in the
product selection box of bugzilla. I think this should be either added or the 
current text for
Apache http-2.0 should be exchanged against Apache http-2.x to avoid 
confusing to the user.

Regards

Rüdiger


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Mads Toftum
On Sat, Dec 03, 2005 at 11:36:10AM -0800, Paul Querna wrote:
 * A Perchild MPM/replacement:  The SoC  perchild-replacement project 
 didn't work out.  We have a basic design that is sound, but we need to 
 actually write the code.
 
+1. Could you dig out a reference to the design? I kind of lost track of
where he was going with it.
For modules I'd like to see some re-ordering of what we ship in the
tarball and what we don't.
Another thing I'd like to see is the proxy refactored to use a proper http
client lib. As an added benefit, an http client lib would be useful in
creating something like CPAN for modules.

vh

Mads Toftum
-- 
`Darn it, who spiked my coffee with water?!' - lwall



Re: httpd 2.2 missing as product in bugzilla

2005-12-03 Thread William A. Rowe, Jr.

Ruediger Pluem wrote:

Hi all,

I just worked on a bug report and noticed that there is no setting for Apache 
http-2.2 in the
product selection box of bugzilla. I think this should be either added or the 
current text for
Apache http-2.0 should be exchanged against Apache http-2.x to avoid 
confusing to the user.


Done.

It's simply Apache httpd-2 now.

Bill


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Colm MacCarthaigh
On Sat, Dec 03, 2005 at 11:36:10AM -0800, Paul Querna wrote:
 * Async/Event MPM: Complete Async pipeline for static files.  I believe 
 we can seriously give every existing single-threaded-event-based server 
 a run for their money on every existing benchmark.  Toss in some dynamic 
 content, and a hybrid Event/Worker has serious potential.  Some of this 
 work is ongoing in the async-read dev branch, but there is plenty more 
 to do.
 
 * A Perchild MPM/replacement:  The SoC  perchild-replacement project 
 didn't work out.  We have a basic design that is sound, but we need to 
 actually write the code.
 
 * HTTP Removed from the core:  I would like to be able to build with 
 --disable-http. Sounds crazy, but it will hopefully shrink the core, and 
 help us improve other protocol handlers like mod_ftp and mod_smtpd.

Ideas based on prior discussions and personal desires;

  * A threaded MPM to become the default: I would like mod_cgid
to die, and for there to be a mod_execd, with an optional ap_exec()
provider. Every place that would have a fork()/exec() can then use
some ap_ function which takes an environment pointer (or NULL for
unchanged), some structure for option suexec stuff, and returns
filehandles for out/in/err. On non-unix/non-threaded it's a noop or
just forks and exec. On threaded, we use a mod_execd (possible with
pre-forking) and pass file descriptors over a local socket.
  
Weed out other thread-safety nits like the lexx/yacc generated
stuff. 

  * Configurable buffer sizes; This work is really in apr, and some of
it is done, but buckets need to be tackled next and then it needs to
be hacked in-httpd. But it would be nice to be able to configure the
buffer size used for reading files, both when we read() them and
when we call sendfile() on them, because that's how we get to
scalable TCP flows. Setting txqueuelen on an interface isn't much
use without application support for buffering similar ammounts - but
that's what admins are starting to need with the ultra-large
Window-sizes neccessary to get really good flow-performance out of
say a 10G link.

  * A small protocol module that lets an admin interface apache via 
a unix domain socket. To give the admin an out-of-band channel to 
query mod_status when their link is full, or when they've gracefully 
stopped. 

  * Optional XML-ised output for things like mod_status

  * Build upon the aaa framework to do some more useful things. Two
in particular I'd like, but they are awkward and contentious.
First, is that we have a lot of third-party providers coming up
with ways of storing state for authentication via http. Most
often via cookies, but sometimes via url-encoded session ID's
and so on. It's messy and ugly, but ignoring the reality of
One-Time Passwords isn't good either, so it might be justifiable
to come with a framework for a united approach. Making say
mod_authnz_secureid only a small bit of work.

The other thing I think is missing from the aaa framework is
a way for an admin to mandate that aaa happen over an encrypted
session only. Some magic directive that doesn't extend into
per-dir/htaccess land that helps them out a little in making
sure that https is being used.

Some of those I have concrete ideas on and plan to code away at, others
are a bit nebulous :)

-- 
Colm MacCárthaighPublic Key: [EMAIL PROTECTED]


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Justin Erenkrantz
--On December 3, 2005 8:52:38 PM + Colm MacCarthaigh [EMAIL PROTECTED] 
wrote:



  * A threaded MPM to become the default: I would like mod_cgid


How about making the MPMs DSOable?


  * Build upon the aaa framework to do some more useful things. Two
in particular I'd like, but they are awkward and contentious.
First, is that we have a lot of third-party providers coming up
with ways of storing state for authentication via http. Most
often via cookies, but sometimes via url-encoded session ID's
and so on. It's messy and ugly, but ignoring the reality of
One-Time Passwords isn't good either, so it might be justifiable
to come with a framework for a united approach. Making say
mod_authnz_secureid only a small bit of work.

The other thing I think is missing from the aaa framework is
a way for an admin to mandate that aaa happen over an encrypted
session only. Some magic directive that doesn't extend into
per-dir/htaccess land that helps them out a little in making
sure that https is being used.


Huh.  Cool.  I'd like to hear more about this...  -- justin


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Paul Querna

Justin Erenkrantz wrote:
--On December 3, 2005 8:52:38 PM + Colm MacCarthaigh 
[EMAIL PROTECTED] wrote:



  * A threaded MPM to become the default: I would like mod_cgid


How about making the MPMs DSOable?

++1!


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread William A. Rowe, Jr.

Nick Kew wrote:

On Saturday 03 December 2005 19:36, Paul Querna wrote:


My intention is for this to be a wide open brainstorming thread.


But we don't have a track record of round tuits.


Sort of the reason the thread is interesting, but I'd rather see code
to comment on.  Interesting ideas, I have some that I'd rather share
as code once they are ready.

Bill


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Paul Querna

William A. Rowe, Jr. wrote:

Nick Kew wrote:

On Saturday 03 December 2005 19:36, Paul Querna wrote:


My intention is for this to be a wide open brainstorming thread.


But we don't have a track record of round tuits.


Sort of the reason the thread is interesting, but I'd rather see code
to comment on.  Interesting ideas, I have some that I'd rather share
as code once they are ready.
Thats the part of the point of this thread. To get the other developers 
interested in your ideas, so that the code can be done sooner.


-Paul


Making MPMs DSOs

2005-12-03 Thread Paul Querna
I am trying to sketch out the issues with allowing MPMs to be loaded as
DSOs, specified from the conf file.

1) AP_MPM_WANT_*.  These defines come from the mpm.h, and are used all
over the core.  A significant number of them are for adding
configuration directives.  The rest are generally changing the behavior
of the mpm_common stuff.

Here is the full list from trunk:
AP_MPM_WANT_FATAL_SIGNAL_HANDLER
AP_MPM_WANT_PROCESS_CHILD_STATUS
AP_MPM_WANT_RECLAIM_CHILD_PROCESSES
AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
AP_MPM_WANT_SET_COREDUMPDIR
AP_MPM_WANT_SET_GRACEFUL_SHUTDOWN
AP_MPM_WANT_SET_LOCKFILE
AP_MPM_WANT_SET_MAX_MEM_FREE
AP_MPM_WANT_SET_MAX_REQUESTS
AP_MPM_WANT_SET_PIDFILE
AP_MPM_WANT_SET_SCOREBOARD
AP_MPM_WANT_SET_STACKSIZE
AP_MPM_WANT_SIGNAL_SERVER
AP_MPM_WANT_WAIT_OR_TIMEOUT

2) Build system issues. Need to make the MPMs build as .so

3) The scoreboard.  Each group of MPMs handles it differently.  The
Event MPM is also re-shaping what a 'connection' means, and this will
likely lead to more scoreboard changes.  We need a better common API to
reading and writing to the scoreboard.  It would also be nice for other
modules, like mod_ldap and mod_dbd, which might want to keep global
state/stats around.

4) mpm_common.c uses ap_server_conf, which is a global variable in each
MPM.  It needs to be moved to be completely inside mpm_common.c.

5) Where to put the DSO Loading code? I sketched out putting it into
mod_so.. I am not sure if it would be easier to just stick it into the core.

Those are the the big ones that I see. I will try to tackle them one at
a time, and when its all done, I think it will work.

-Paul


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Joost de Heer
An idea, although I have no idea whether this can be done at all, or whether 
this has been discussed before:


MaxMemoryPerChild.

Especially with things like PHP, occasionally a child process can 'explode' 
and grow very large. As far as I'm aware, the only way to limit child 
processes is currently the number of requests. But since it's rather hard to 
predict when a child can grow very large (it theoretically could happen in the 
first request), I'd rather have a memory limit: Once a child process grows 
beyond that limit, kill the child (after the current request finishes of course).


I've had boxes where the average child was 12 MB, but once in a while, a child 
would grow upto 140MB. Normally, MaxClients of 70 would be quite safe, but 
with the growing children, even that was too high. But if I could set 
MaxMemoryPerChild 20 MB, this would be no problem, as these children would be 
killed before they grew too large.


Joost


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Justin Erenkrantz
--On December 3, 2005 11:57:08 PM +0100 Joost de Heer 
[EMAIL PROTECTED] wrote:



An idea, although I have no idea whether this can be done at all, or
whether this has been discussed before:

MaxMemoryPerChild.


http://httpd.apache.org/docs/2.2/mod/core.html#rlimitmem

HTH.  -- justin


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Joost de Heer

Justin Erenkrantz wrote:
--On December 3, 2005 11:57:08 PM +0100 Joost de Heer 
[EMAIL PROTECTED] wrote:



An idea, although I have no idea whether this can be done at all, or
whether this has been discussed before:

MaxMemoryPerChild.



http://httpd.apache.org/docs/2.2/mod/core.html#rlimitmem


This applies to processes forked off from Apache children servicing requests, 
not the Apache children themselves.


So not exactly what I proposed, unless I am understanding that wrong?

Joost


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Astrid 'Kess' Keßler
On Sunday 04 December 2005 00:14, Justin Erenkrantz wrote:
 --On December 4, 2005 12:06:40 AM +0100 Joost de Heer

 [EMAIL PROTECTED] wrote:
  This applies to processes forked off from Apache children servicing
  requests, not the Apache children themselves.
 
  So not exactly what I proposed, unless I am understanding that wrong?

 If you want to limit the children themselves, then you want the standard
 ulimit controls available in your shell or whatnot.  -- justin

hm, together with a perchild-like mpm I could imagine a memory limitation per 
child process ...

kess


Question about memory in httpd

2005-12-03 Thread Christophe Jaillet
When going thrue the code, looking at apr_palloc and friends, one can see
that :
* in some places (few of them) , the returned pointer is checked against
NULL
* in other places (most of them), it is not.

I've always been told that checking return value is a good idea, (especially
with memory allocation in order to avoid disasters) so should all the
apr_palloc (and friends) calls be checked or are they special reasons in
httpd not to care about short in memory situation ?

CJ.





Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Mads Toftum
On Sun, Dec 04, 2005 at 12:31:31AM +0100, Astrid 'Kess' Keßler wrote:
 hm, together with a perchild-like mpm I could imagine a memory limitation per 
 child process ...
 
Not really necessary given that the whole point of a perchild-like mpm
is to run vhosts under different user ids, so it should be fairly simple
to handle that at the os level.

vh

Mads Toftum
-- 
`Darn it, who spiked my coffee with water?!' - lwall



Re: apr_socket_sendfile not found on OS/X?

2005-12-03 Thread Ian Holsman

Thanks Paul,
I didn't realize the trunk wasn't 2.2.x.. otherwise I would have just 
fixed it myself ;-)


Paul Querna wrote:

Paul Querna wrote:

Ian Holsman wrote:

Hi.

I just checked out the latest trunk of apr  httpd on my mac, and 
can't build it anymore. it is complaining about apr_socket_sendfile 
not being defined.


so I checked .. and apr.h has APR_HAS_SENDFILE as 0.

the problem is sendfile_nonblocking calls apr_socket_sendfile ;(

mac/darwin doesn't support sendfile at all.

I don't know how you are getting sendfile_nonblocking called at all, 
since it is all wrapped by #if APR_HAS_SENDFILE


-Paul

Meh.

Someone didn't wrap sendfile_nonblocking itself under APR_HAS_SENDFILE 
when they re-factored it :-)


Fixed in trunk/r351997.

-Paul





Re: mod_auth[nz]_dbd password caching

2005-12-03 Thread Ian Holsman

Hi Phil,
A while back I wrote a auth wrapper which used a MD5 hash inside a 
cookie  to determine if the user was authenticated. If the cookie was 
invalid or not present it would fall back to the regular auth method (in 
your case a DB hit).
It also had a bit which sat just after the authentication section which 
would create the cookie on successful authentication.


If you would like I could see if I can find this.. I don't think I 
actually made use of it after I wrote it ;(


Phil Endecott wrote:

Dear All,

First of all, congratulation on the release of 2.2.

I use mod_auth_pgsql at http://anyterm.org/my.html, and found a problem 
earlier in the year.  To get reasonable performance you need to use the 
module's caching mechanism, but this cache is not flushed or updated 
when the database changes.  So things don't work properly when the user 
changes their password.


I started to think about fixing it myself but quickly realised that both 
the database and authentication frameworks were changing in 2.1+ and 
decided to wait before doing anything.  I now see that 2.2 has 
mod_auth[nz]_dbd - great!


However, as far as I can see from 
http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html and the source, 
this new module doesn't do any caching.  Is this true?  To get the sort 
of performance that I need for my site I really need in-memory caching 
of passwords, but I also need to solve mod_auth_pgsql's non-updating 
problem.  The solution to this is to use PostgreSQL's asynchronous 
notification mechanism: the module issues a LISTEN command and is then 
notified when the password table changes.  I don't know if the APR DB 
interface has any support for this (it doesn't seem to be documented at 
all at http://apr.apache.org/docs/apr-util/modules.html); even if it 
does, it is not portable to other databases.


Has anyone looked at this?  If no-one is working on this and you think 
it would be a useful feature to add, I may be able to write something 
with a bit of help.


Cheers,

--Phil.








Re: Question about memory in httpd

2005-12-03 Thread Paul Querna
Christophe Jaillet wrote:
 When going thrue the code, looking at apr_palloc and friends, one can see
 that :
 * in some places (few of them) , the returned pointer is checked against
 NULL
 * in other places (most of them), it is not.
 
 I've always been told that checking return value is a good idea, (especially
 with memory allocation in order to avoid disasters) so should all the
 apr_palloc (and friends) calls be checked or are they special reasons in
 httpd not to care about short in memory situation ?

Actually, on most operating systems, including Linux and FreeBSD, you
will NEVER get returned NULL.

Instead when your operating system is truly out of memory, it will kill
your process, and you won't have any chance of handling it.

Read a whole blog post about it:
http://baus.net/memory-management

-Paul


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Ian Holsman

Paul Querna wrote:

My intention is for this to be a wide open brainstorming thread.

I expect that we will be able to discuss several ideas in much more 
detail at the Hackathon next week, but I really want to get all ideas 
'on the table'.


I have a few things I would like to see, but I am sure there are perhaps 
hundreds of other major features that other people want.  It helps to 
know what everyone else is thinking about new features, rather than one 
person going off an doing it all by themselves. (not that I'll stop 
anyone from that either).


Here is my list:

* Async/Event MPM: Complete Async pipeline for static files.  I believe 
we can seriously give every existing single-threaded-event-based server 
a run for their money on every existing benchmark.  Toss in some dynamic 
content, and a hybrid Event/Worker has serious potential.  Some of this 
work is ongoing in the async-read dev branch, but there is plenty more 
to do.


I've always wanted to (but not had free time) to write a SEDA-type mpm. 
the SEDA is slightly different to the async/event mpm in that a given 
hook/filter would process multiple events/requests at the same context 
switch. This is what the apr_queue stuff was initially designed for.


I'd also like to brainstorm a better solution to running Rails/Django 
applications inside of the httpd process than the SCGI/FastCGI solution 
which most people use.


Configuration .. make it configurable. by that I mean allowing people to 
use LDAP or a DB to hold the configuration files, and not a flat file. 
This is mainly intended for large server farms. Currently the main 
reason for logging onto a webserver is to change it's configuration (and 
bounce) .. if we could reduce that to just 'bounce' it might make life 
easier. (or some method where it checks configs every X minutes and 
autobounces..removing the need to log onto the machine at all ;-)


Configuration .. make it easier..I can't think of anything on how to do 
this off the top of my head, but it seems to be a common complaint.


Logging/debugging .. changing the log system to use something like Log4C 
for errors.. this way the module developer can easily turn on/off 
various information on a live system when he is having issues.




wish I could attend the ApacheCon.. if there was a ApacheCon OZ I'd be 
there ;-)


regards
Ian


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Garrett Rooney
On 12/3/05, Ian Holsman [EMAIL PROTECTED] wrote:

 I'd also like to brainstorm a better solution to running Rails/Django
 applications inside of the httpd process than the SCGI/FastCGI solution
 which most people use.

Out of curiosity, what do you think is wrong with the current FastCGI
method of running them?

-garrett


Re: What do you want in HTTPD 2.4/3.0/X/GREEN?

2005-12-03 Thread Ian Holsman

Garrett Rooney wrote:

On 12/3/05, Ian Holsman [EMAIL PROTECTED] wrote:


I'd also like to brainstorm a better solution to running Rails/Django
applications inside of the httpd process than the SCGI/FastCGI solution
which most people use.


Out of curiosity, what do you think is wrong with the current FastCGI
method of running them?



configuration.
for example in order for me to get typo running on my blog, I need 4 
rewrite rules. (and when I tried to do something slightly different, it 
took me a good hour to configure it properly with all the rewrite magic)


also when applications 'experts' like scott (the creator of typo) have 
issues like 
http://scottstuff.net/blog/articles/2005/07/20/apache-tuning-for-rails-and-fastcgi


i think it isn't easy enough to run.
what I am after is something as simple as


RailsApp /foo/ rails-controller.rb [cache] [ENV=production]


which would just work as a in-process application...
making it as simple as running a PHP application is the goal.

I don't like the trend i see with rails  django people saying apache is 
hard to use and switching to other web servers.



-garrett





Re: Making MPMs DSOs

2005-12-03 Thread Jim Jagielski
Paul Querna wrote:
 
 3) The scoreboard.  Each group of MPMs handles it differently.  The
 Event MPM is also re-shaping what a 'connection' means, and this will
 likely lead to more scoreboard changes.  We need a better common API to
 reading and writing to the scoreboard.  It would also be nice for other
 modules, like mod_ldap and mod_dbd, which might want to keep global
 state/stats around.
 

Big +1 here... while working on the proxy balancer stuff,
having better scoreboard interaction has been an obvious
aspect that could be better and more useful.

-- 
===
 Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
   If you can dodge a wrench, you can dodge a ball.