You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Rainer Jung <ra...@kippdata.de> on 2017/11/19 11:49:12 UTC
Serf support in trunk
While testing the 2.5.0 alpha candidate I noticed, that our optional use
of serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
- the serf API we use was only present in serf until version 0.3.1
(February 2010)
- in May 2010 it was changed inside serf and httpd does not support this
newer API
- serf currently is now at version 1.3.9 (August 2016) providing stable
APIs. There is still some basic maintenance activity in the serf
project, for instance for supporting newer scons build tool versions or
support for OpenSSL 1.1.0.
I do not actually know what the serf support adds to httpd, it seems
mostly some "SerfCluster" feature for mod_proxy. There's no docs and
some comments in the code indicate the impl is not complete. SVN logs
point to the same direction.
Paul Querna wrote in his 2009 svn commit log message:
Work in Progress.
=====================
Add Clustered proxying support to mod_serf, by using the heartbeats system.
No preconfiguration of cluster members is needed.
Just a config like this:
SerfCluster sweet heartbeat file=/var/cache/apache/hb.dat
SerfCluster sour heartbeat file=/var/cache/apache/cluster2.dat
<Location "/">
SerfPass cluster://sweet
</Location>
<Location "/different_cluster">
SerfPass cluster://sour
</Location>
The location of all possible destination servers is provided by a new
providers interface, that includes configuration checking of the
arguments to the SerfCluster command, solving one of the worst problems
with the mod_proxy load balancer subsystem.
===================
I suggest we pull the serf dependent code if we can no find a maintainer
for it. Any comments? Anyone interested in actually updating it and
making it work?
Regards,
Rainer
RE: Serf support in trunk
Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: Rainer Jung [mailto:rainer.jung@kippdata.de]
> Sent: maandag 20 november 2017 14:33
> To: dev@httpd.apache.org; Bert Huijben <be...@qqmail.nl>
> Cc: dev@serf.apache.org
> Subject: Re: Serf support in trunk
> > I have no idea why some things were duplicated for different http
> engines...
> > As httpd user I don't see why I want to use different configurations for
> > different engines, except for one knob that chooses the engine.
> >
> > Mod_pagespeed (another serf consumer) is also trying to become an ASF
> > project... Not sure if there would be any interest in that project.
>
> I don't know whether mod_pagespeed also uses an outdated serf.
They use a slightly patched Serf 1.3.x, but with 1.4 they should be able to move to the normal release. Last time I checked the requested features were implemented in our public api.
Bert
>
> Regards,
>
> Rainer
RE: Serf support in trunk
Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: Rainer Jung [mailto:rainer.jung@kippdata.de]
> Sent: maandag 20 november 2017 14:33
> To: dev@httpd.apache.org; Bert Huijben <be...@qqmail.nl>
> Cc: dev@serf.apache.org
> Subject: Re: Serf support in trunk
> > I have no idea why some things were duplicated for different http
> engines...
> > As httpd user I don't see why I want to use different configurations for
> > different engines, except for one knob that chooses the engine.
> >
> > Mod_pagespeed (another serf consumer) is also trying to become an ASF
> > project... Not sure if there would be any interest in that project.
>
> I don't know whether mod_pagespeed also uses an outdated serf.
They use a slightly patched Serf 1.3.x, but with 1.4 they should be able to move to the normal release. Last time I checked the requested features were implemented in our public api.
Bert
>
> Regards,
>
> Rainer
Re: Serf support in trunk
Posted by Rainer Jung <ra...@kippdata.de>.
Hi Bert,
Am 20.11.2017 um 13:23 schrieb Bert Huijben:
>
>
>> -----Original Message-----
>> From: Stefan Eissing [mailto:stefan.eissing@greenbytes.de]
>> Sent: maandag 20 november 2017 11:40
>> To: dev@httpd.apache.org
>> Subject: Re: Serf support in trunk
>>
>> +1 for pulling it unless someone steps forward.
>>
>>> Am 19.11.2017 um 12:49 schrieb Rainer Jung <ra...@kippdata.de>:
>>>
>>> While testing the 2.5.0 alpha candidate I noticed, that our optional use
> of
>> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
>>>
>>> - the serf API we use was only present in serf until version 0.3.1
> (February
>> 2010)
>
> What serf api are we talking about?
>
> There shouldn't have been any changes to the public api withing 1.3.x... but
> then around 1.3.0 the project wasn't an ASF project yet.
Not 1.3 but 0.3 to 0.4 (yes, very old times), We are at 0.3 compat, not
at 0.4 and not even at 1.0.
The change was:
0.3.1:
typedef serf_bucket_t * (*serf_connection_setup_t)(apr_socket_t *skt,
void *setup_baton,
apr_pool_t *pool);
0.4.0:
typedef apr_status_t (*serf_connection_setup_t)(apr_socket_t *skt,
serf_bucket_t **read_bkt,
serf_bucket_t **write_bkt,
void *setup_baton,
apr_pool_t *pool);
From the Changelog (not sure it is that change):
Serf 0.4.0 [2010-05-13, r1353]
...
Improvements and fixes to SSL support, including connection setup changes
...
Our breaking httpd file is modules/proxy/mod_serf.c:
... This uses the old style arguments ...
static serf_bucket_t* conn_setup(apr_socket_t *sock,
void *setup_baton,
apr_pool_t *pool)
... and is included here as a callback for a serf call ...
conn = serf_connection_create(serfme, address,
conn_setup, baton,
closed_connection, baton,
pool);
...
>>> - in May 2010 it was changed inside serf and httpd does not support this
>> newer API
>>>
>>> - serf currently is now at version 1.3.9 (August 2016) providing stable
> APIs.
>> There is still some basic maintenance activity in the serf project, for
> instance
>> for supporting newer scons build tool versions or support for OpenSSL
> 1.1.0.
>>>
>>> I do not actually know what the serf support adds to httpd, it seems
>> mostly some "SerfCluster" feature for mod_proxy. There's no docs and some
>> comments in the code indicate the impl is not complete. SVN logs point to
>> the same direction.
>
> I have no idea why some things were duplicated for different http engines...
> As httpd user I don't see why I want to use different configurations for
> different engines, except for one knob that chooses the engine.
>
> Mod_pagespeed (another serf consumer) is also trying to become an ASF
> project... Not sure if there would be any interest in that project.
I don't know whether mod_pagespeed also uses an outdated serf.
Regards,
Rainer
Re: Serf support in trunk
Posted by Rainer Jung <ra...@kippdata.de>.
Hi Bert,
Am 20.11.2017 um 13:23 schrieb Bert Huijben:
>
>
>> -----Original Message-----
>> From: Stefan Eissing [mailto:stefan.eissing@greenbytes.de]
>> Sent: maandag 20 november 2017 11:40
>> To: dev@httpd.apache.org
>> Subject: Re: Serf support in trunk
>>
>> +1 for pulling it unless someone steps forward.
>>
>>> Am 19.11.2017 um 12:49 schrieb Rainer Jung <ra...@kippdata.de>:
>>>
>>> While testing the 2.5.0 alpha candidate I noticed, that our optional use
> of
>> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
>>>
>>> - the serf API we use was only present in serf until version 0.3.1
> (February
>> 2010)
>
> What serf api are we talking about?
>
> There shouldn't have been any changes to the public api withing 1.3.x... but
> then around 1.3.0 the project wasn't an ASF project yet.
Not 1.3 but 0.3 to 0.4 (yes, very old times), We are at 0.3 compat, not
at 0.4 and not even at 1.0.
The change was:
0.3.1:
typedef serf_bucket_t * (*serf_connection_setup_t)(apr_socket_t *skt,
void *setup_baton,
apr_pool_t *pool);
0.4.0:
typedef apr_status_t (*serf_connection_setup_t)(apr_socket_t *skt,
serf_bucket_t **read_bkt,
serf_bucket_t **write_bkt,
void *setup_baton,
apr_pool_t *pool);
From the Changelog (not sure it is that change):
Serf 0.4.0 [2010-05-13, r1353]
...
Improvements and fixes to SSL support, including connection setup changes
...
Our breaking httpd file is modules/proxy/mod_serf.c:
... This uses the old style arguments ...
static serf_bucket_t* conn_setup(apr_socket_t *sock,
void *setup_baton,
apr_pool_t *pool)
... and is included here as a callback for a serf call ...
conn = serf_connection_create(serfme, address,
conn_setup, baton,
closed_connection, baton,
pool);
...
>>> - in May 2010 it was changed inside serf and httpd does not support this
>> newer API
>>>
>>> - serf currently is now at version 1.3.9 (August 2016) providing stable
> APIs.
>> There is still some basic maintenance activity in the serf project, for
> instance
>> for supporting newer scons build tool versions or support for OpenSSL
> 1.1.0.
>>>
>>> I do not actually know what the serf support adds to httpd, it seems
>> mostly some "SerfCluster" feature for mod_proxy. There's no docs and some
>> comments in the code indicate the impl is not complete. SVN logs point to
>> the same direction.
>
> I have no idea why some things were duplicated for different http engines...
> As httpd user I don't see why I want to use different configurations for
> different engines, except for one knob that chooses the engine.
>
> Mod_pagespeed (another serf consumer) is also trying to become an ASF
> project... Not sure if there would be any interest in that project.
I don't know whether mod_pagespeed also uses an outdated serf.
Regards,
Rainer
RE: Serf support in trunk
Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: Stefan Eissing [mailto:stefan.eissing@greenbytes.de]
> Sent: maandag 20 november 2017 11:40
> To: dev@httpd.apache.org
> Subject: Re: Serf support in trunk
>
> +1 for pulling it unless someone steps forward.
>
> > Am 19.11.2017 um 12:49 schrieb Rainer Jung <ra...@kippdata.de>:
> >
> > While testing the 2.5.0 alpha candidate I noticed, that our optional use
of
> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
> >
> > - the serf API we use was only present in serf until version 0.3.1
(February
> 2010)
What serf api are we talking about?
There shouldn't have been any changes to the public api withing 1.3.x... but
then around 1.3.0 the project wasn't an ASF project yet.
> > - in May 2010 it was changed inside serf and httpd does not support this
> newer API
> >
> > - serf currently is now at version 1.3.9 (August 2016) providing stable
APIs.
> There is still some basic maintenance activity in the serf project, for
instance
> for supporting newer scons build tool versions or support for OpenSSL
1.1.0.
> >
> > I do not actually know what the serf support adds to httpd, it seems
> mostly some "SerfCluster" feature for mod_proxy. There's no docs and some
> comments in the code indicate the impl is not complete. SVN logs point to
> the same direction.
I have no idea why some things were duplicated for different http engines...
As httpd user I don't see why I want to use different configurations for
different engines, except for one knob that chooses the engine.
Mod_pagespeed (another serf consumer) is also trying to become an ASF
project... Not sure if there would be any interest in that project.
Bert
RE: Serf support in trunk
Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: Stefan Eissing [mailto:stefan.eissing@greenbytes.de]
> Sent: maandag 20 november 2017 11:40
> To: dev@httpd.apache.org
> Subject: Re: Serf support in trunk
>
> +1 for pulling it unless someone steps forward.
>
> > Am 19.11.2017 um 12:49 schrieb Rainer Jung <ra...@kippdata.de>:
> >
> > While testing the 2.5.0 alpha candidate I noticed, that our optional use
of
> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
> >
> > - the serf API we use was only present in serf until version 0.3.1
(February
> 2010)
What serf api are we talking about?
There shouldn't have been any changes to the public api withing 1.3.x... but
then around 1.3.0 the project wasn't an ASF project yet.
> > - in May 2010 it was changed inside serf and httpd does not support this
> newer API
> >
> > - serf currently is now at version 1.3.9 (August 2016) providing stable
APIs.
> There is still some basic maintenance activity in the serf project, for
instance
> for supporting newer scons build tool versions or support for OpenSSL
1.1.0.
> >
> > I do not actually know what the serf support adds to httpd, it seems
> mostly some "SerfCluster" feature for mod_proxy. There's no docs and some
> comments in the code indicate the impl is not complete. SVN logs point to
> the same direction.
I have no idea why some things were duplicated for different http engines...
As httpd user I don't see why I want to use different configurations for
different engines, except for one knob that chooses the engine.
Mod_pagespeed (another serf consumer) is also trying to become an ASF
project... Not sure if there would be any interest in that project.
Bert
Re: Serf support in trunk
Posted by Stefan Eissing <st...@greenbytes.de>.
+1 for pulling it unless someone steps forward.
> Am 19.11.2017 um 12:49 schrieb Rainer Jung <ra...@kippdata.de>:
>
> While testing the 2.5.0 alpha candidate I noticed, that our optional use of serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
>
> - the serf API we use was only present in serf until version 0.3.1 (February 2010)
>
> - in May 2010 it was changed inside serf and httpd does not support this newer API
>
> - serf currently is now at version 1.3.9 (August 2016) providing stable APIs. There is still some basic maintenance activity in the serf project, for instance for supporting newer scons build tool versions or support for OpenSSL 1.1.0.
>
> I do not actually know what the serf support adds to httpd, it seems mostly some "SerfCluster" feature for mod_proxy. There's no docs and some comments in the code indicate the impl is not complete. SVN logs point to the same direction.
>
> Paul Querna wrote in his 2009 svn commit log message:
>
> Work in Progress.
>
> =====================
> Add Clustered proxying support to mod_serf, by using the heartbeats system.
>
> No preconfiguration of cluster members is needed.
>
> Just a config like this:
> SerfCluster sweet heartbeat file=/var/cache/apache/hb.dat
> SerfCluster sour heartbeat file=/var/cache/apache/cluster2.dat
> <Location "/">
> SerfPass cluster://sweet
> </Location>
> <Location "/different_cluster">
> SerfPass cluster://sour
> </Location>
>
> The location of all possible destination servers is provided by a new providers interface, that includes configuration checking of the arguments to the SerfCluster command, solving one of the worst problems with the mod_proxy load balancer subsystem.
> ===================
>
> I suggest we pull the serf dependent code if we can no find a maintainer for it. Any comments? Anyone interested in actually updating it and making it work?
>
> Regards,
>
> Rainer
Re: Serf support in trunk
Posted by Paul Querna <pa...@querna.org>.
As the author, I'm fine with it being removed. I don't think updating
it would be particularly hard, but I don't have personal interest in
improving mod_proxy with serf at this time.
On Sun, Nov 19, 2017 at 3:49 AM, Rainer Jung <ra...@kippdata.de> wrote:
> While testing the 2.5.0 alpha candidate I noticed, that our optional use of
> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
>
> - the serf API we use was only present in serf until version 0.3.1 (February
> 2010)
>
> - in May 2010 it was changed inside serf and httpd does not support this
> newer API
>
> - serf currently is now at version 1.3.9 (August 2016) providing stable
> APIs. There is still some basic maintenance activity in the serf project,
> for instance for supporting newer scons build tool versions or support for
> OpenSSL 1.1.0.
>
> I do not actually know what the serf support adds to httpd, it seems mostly
> some "SerfCluster" feature for mod_proxy. There's no docs and some comments
> in the code indicate the impl is not complete. SVN logs point to the same
> direction.
>
> Paul Querna wrote in his 2009 svn commit log message:
>
> Work in Progress.
>
> =====================
> Add Clustered proxying support to mod_serf, by using the heartbeats system.
>
> No preconfiguration of cluster members is needed.
>
> Just a config like this:
> SerfCluster sweet heartbeat file=/var/cache/apache/hb.dat
> SerfCluster sour heartbeat file=/var/cache/apache/cluster2.dat
> <Location "/">
> SerfPass cluster://sweet
> </Location>
> <Location "/different_cluster">
> SerfPass cluster://sour
> </Location>
>
> The location of all possible destination servers is provided by a new
> providers interface, that includes configuration checking of the arguments
> to the SerfCluster command, solving one of the worst problems with the
> mod_proxy load balancer subsystem.
> ===================
>
> I suggest we pull the serf dependent code if we can no find a maintainer for
> it. Any comments? Anyone interested in actually updating it and making it
> work?
>
> Regards,
>
> Rainer