You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@serf.apache.org by Bert Huijben <be...@qqmail.nl> on 2017/11/20 12:23:14 UTC

RE: Serf support in trunk


> -----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: 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