Re: proxy API compat break in 2.4.7

2016-04-08 Thread Jim Jagielski
Ahh... yes, for 3rd party modules depending on mod_proxy, or
using mod_proxy, they would need to be recompiled.

Ideally, we should have put these at the end of the struct
as we do with the more "major" structs.

> On Apr 7, 2016, at 2:09 PM, Rainer Jung  wrote:
> 
> Revision 1560081 (backport of r1533087) introduced "char 
> uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the 
> proxy_worker_shared structure which IMHO broke compatibility between 2.4.6 
> and 2.4.7.
> 
> I noticed it just now, because I was implementing a custom LB method and 
> during runtime it always found s->status to be 0. I had compiled it against 
> an old 2.4.4 to ensure not using later features, but was testing inside 
> 2.4.18. Thus the offset of the status field calculated for 2.4.4 actually 
> pointed into the long uds_path string which wasn't used and probably calloced 
> with zeroes.
> 
> Any good idea how to best document the break for other module developers?
> 
> Regards,
> 
> Rainer



Re: proxy API compat break in 2.4.7

2016-04-08 Thread Jim Jagielski

> On Apr 7, 2016, at 6:55 PM, Yann Ylavic  wrote:
> 
> On Thu, Apr 7, 2016 at 8:09 PM, Rainer Jung  wrote:
>> Revision 1560081 (backport of r1533087) introduced "char
>> uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the
>> proxy_worker_shared structure which IMHO broke compatibility between 2.4.6
>> and 2.4.7.
> 
> Possibly [1] (currently proposed for backport) may cause the same issue.
> We should probably fix it (ie. move the new fields to the end of
> proxy_worker_shared) to make it backportable...
> 

Yep, will need to adjust the patch.



Re: proxy API compat break in 2.4.7

2016-04-08 Thread Ruediger Pluem


On 04/07/2016 09:36 PM, William A Rowe Jr wrote:
> The first most important documentation of this should be in ap_mmn.h,
> as we've done in the past (you'll see some highlights).
> 
> A note under the CHANGES entry for 2.4.7 seems worthwhile.
> 
> Pointing this out under Announcement seems appropriate, that users
> of third party mod_proxy-consuming modules will need to recompile
> those modules when upgrading from 2.4.1 - 2.4.6.
> 
> I can't think of another obvious place, other than any related doxygen.
> 
> It seems to late to correct this situation, as half the world will benefit
> from leaving things as they are, and the other half of the world would
> have an easier time migrating from 2.4.early to 2.4.now.  Lose lose
> situation in my mind, so best to leave as-is, with docs.

+1

Regards

RĂ¼diger



Re: proxy API compat break in 2.4.7

2016-04-07 Thread Rainer Jung

Am 08.04.2016 um 00:55 schrieb Yann Ylavic:

On Thu, Apr 7, 2016 at 8:09 PM, Rainer Jung  wrote:

Revision 1560081 (backport of r1533087) introduced "char
uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the
proxy_worker_shared structure which IMHO broke compatibility between 2.4.6
and 2.4.7.


Possibly [1] (currently proposed for backport) may cause the same issue.
We should probably fix it (ie. move the new fields to the end of
proxy_worker_shared) to make it backportable...

Regards,
Yann.

[1] 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?r1=1667707&r2=1725545&diff_format=h


Yes, fully agreed, as-is it would result in an API break.

Rainer



Re: proxy API compat break in 2.4.7

2016-04-07 Thread Yann Ylavic
On Thu, Apr 7, 2016 at 8:09 PM, Rainer Jung  wrote:
> Revision 1560081 (backport of r1533087) introduced "char
> uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the
> proxy_worker_shared structure which IMHO broke compatibility between 2.4.6
> and 2.4.7.

Possibly [1] (currently proposed for backport) may cause the same issue.
We should probably fix it (ie. move the new fields to the end of
proxy_worker_shared) to make it backportable...

Regards,
Yann.

[1] 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?r1=1667707&r2=1725545&diff_format=h


Re: proxy API compat break in 2.4.7

2016-04-07 Thread Rainer Jung

Thanks, fully agreed. I added short notes in r1738184.

Regards,

Rainer

Am 07.04.2016 um 21:36 schrieb William A Rowe Jr:

The first most important documentation of this should be in ap_mmn.h,
as we've done in the past (you'll see some highlights).

A note under the CHANGES entry for 2.4.7 seems worthwhile.

Pointing this out under Announcement seems appropriate, that users
of third party mod_proxy-consuming modules will need to recompile
those modules when upgrading from 2.4.1 - 2.4.6.

I can't think of another obvious place, other than any related doxygen.

It seems to late to correct this situation, as half the world will benefit
from leaving things as they are, and the other half of the world would
have an easier time migrating from 2.4.early to 2.4.now.  Lose lose
situation in my mind, so best to leave as-is, with docs.



On Thu, Apr 7, 2016 at 1:09 PM, Rainer Jung mailto:rainer.j...@kippdata.de>> wrote:

Revision 1560081 (backport of r1533087) introduced "char
uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the
proxy_worker_shared structure which IMHO broke compatibility between
2.4.6 and 2.4.7.

I noticed it just now, because I was implementing a custom LB method
and during runtime it always found s->status to be 0. I had compiled
it against an old 2.4.4 to ensure not using later features, but was
testing inside 2.4.18. Thus the offset of the status field
calculated for 2.4.4 actually pointed into the long uds_path string
which wasn't used and probably calloced with zeroes.

Any good idea how to best document the break for other module
developers?

Regards,

Rainer


Re: proxy API compat break in 2.4.7

2016-04-07 Thread William A Rowe Jr
The first most important documentation of this should be in ap_mmn.h,
as we've done in the past (you'll see some highlights).

A note under the CHANGES entry for 2.4.7 seems worthwhile.

Pointing this out under Announcement seems appropriate, that users
of third party mod_proxy-consuming modules will need to recompile
those modules when upgrading from 2.4.1 - 2.4.6.

I can't think of another obvious place, other than any related doxygen.

It seems to late to correct this situation, as half the world will benefit
from leaving things as they are, and the other half of the world would
have an easier time migrating from 2.4.early to 2.4.now.  Lose lose
situation in my mind, so best to leave as-is, with docs.



On Thu, Apr 7, 2016 at 1:09 PM, Rainer Jung  wrote:

> Revision 1560081 (backport of r1533087) introduced "char
> uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the
> proxy_worker_shared structure which IMHO broke compatibility between 2.4.6
> and 2.4.7.
>
> I noticed it just now, because I was implementing a custom LB method and
> during runtime it always found s->status to be 0. I had compiled it against
> an old 2.4.4 to ensure not using later features, but was testing inside
> 2.4.18. Thus the offset of the status field calculated for 2.4.4 actually
> pointed into the long uds_path string which wasn't used and probably
> calloced with zeroes.
>
> Any good idea how to best document the break for other module developers?
>
> Regards,
>
> Rainer
>


proxy API compat break in 2.4.7

2016-04-07 Thread Rainer Jung
Revision 1560081 (backport of r1533087) introduced "char 
uds_path[PROXY_WORKER_MAX_NAME_SIZE]" in the middle of the 
proxy_worker_shared structure which IMHO broke compatibility between 
2.4.6 and 2.4.7.


I noticed it just now, because I was implementing a custom LB method and 
during runtime it always found s->status to be 0. I had compiled it 
against an old 2.4.4 to ensure not using later features, but was testing 
inside 2.4.18. Thus the offset of the status field calculated for 2.4.4 
actually pointed into the long uds_path string which wasn't used and 
probably calloced with zeroes.


Any good idea how to best document the break for other module developers?

Regards,

Rainer