Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread Daniel Gruno
On 01/21/2013 07:32 AM, 松本 亮介 wrote:
 Hi Daniel.
 
 Thank you for your comment. 
 
 I have tried to compile and install mod_mruby on my own machine to test
 it, but there are too many compiler errors for it to work :( In
 particular, you have a lot of declarations after statements in your
 code, which is not C90 compliant, and needs fixing. There are also some
 
 Did you built mruby? If you don't build murky,  you try to build by bellow 
 commands.
 
 - mruby and mod_mruby build
 git clone git://github.com/matsumoto-r/mod_mruby.git
 cd mod_mruby
 git submodule init
 git submodule update
 cd murby
 rake
 cd ..
 ./configure --with-apxs=/usr/local/apache/bin/apxs 
 --with-apachectl=/usr/local/apache/bin/apachectl
 make
 make install
 
 - mod_mruby settings
 cp -p test/test.mrb /usr/local/apache/htdocs/.
 vi /usr/local/apache/conf/httpd.con
 (snip)
 LoadModule mruby_module   modules/mod_mruby.so
 AddHandler mruby-script .mrb
 (snip)
 /usr/local/apache/bin/apachectl start
 
 - mod_mruby test
 http://youraddress/test.mrb
 snip

Hi again,

I did manage to finally get mod_mruby running on my test server, after a
lot of tweaking of your source code. In general, you should always
compile your development modules using _maintainer mode_. This can be
achieved when you configure the httpd source by running ./configure
--enable-maintainer-mode. This should also make apxs run using
maintainer mode, which will alert you to anything about the code which
doesn't sit right with httpd and the standards we have laid out.

As for how the module runs, I'll include mod_mruby in my talk a bit,
showing how mod_lua compares to it as well as mod_php and mod_perl on
httpd 2.4 (yes, mod_perl can be built for 2.4 ;) ).

While it shows a good performance - considering Ruby is generally a slow
language - it does have serious performance issues once you start upping
the concurrency on 2.4. At only 30 concurrent clients, I am getting a
lot of disconnects and segmentation faults from mod_mruby, making it
plummet down to 150 requests per second for a simple hello world script,
and at 500 concurrent clients, it's as low as 50 requests per second,
possibly because it crashes the server, which then has to re-spawn new
workers all the time. I've uploaded a log of GDB at
http://apaste.info/dsFz which you can possibly use to figure out why
it's behaving like it does. There also seems to be a lot of other
exceptions raised when just calling it with 1 client (mrb_exc_raise).

I hope you figure these things out, as mod_mruby is a welcome addition
to the http server :). If you can get it to run stable on 2.4/2.5 before
ApacheCon, I'd love to try it out again and get some proper performance
tests going.

With regards,
Daniel.


2.4.3, build with vc11 (2012)

2013-01-21 Thread Pierre Joye
hi!

Has anyone tried to build 2.4.3 with vc11?

Using either makefiles or dsp (converted), I got a rc.exe error,
invalid usage. The cmd line is:

rc.exe /d NDEBUG /d APP_FILE /d BIN_NAME=httpd.exe /d
LONG_NAME=Apache HTTP Server /d ICON_FILE=apache.ico /d
_VC80_UPGRADE=0x0600 /l 0x409 /I build\win32 /I ./include /I
./srclib/apr/include /fo.\Release/httpd.res
.\build\win32\httpd.rc

However other rc calls produce the same error.

Cheers.
--
Pierre

@pierrejoye


Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread 松本 亮介
On 2013/01/21, at 19:03, Daniel Gruno rum...@cord.dk wrote:

 On 01/21/2013 07:32 AM, 松本 亮介 wrote:
 Hi Daniel.
 
 Thank you for your comment. 
 
 I have tried to compile and install mod_mruby on my own machine to test
 it, but there are too many compiler errors for it to work :( In
 particular, you have a lot of declarations after statements in your
 code, which is not C90 compliant, and needs fixing. There are also some
 
 Did you built mruby? If you don't build murky,  you try to build by bellow 
 commands.
 
 - mruby and mod_mruby build
 git clone git://github.com/matsumoto-r/mod_mruby.git
 cd mod_mruby
 git submodule init
 git submodule update
 cd murby
 rake
 cd ..
 ./configure --with-apxs=/usr/local/apache/bin/apxs 
 --with-apachectl=/usr/local/apache/bin/apachectl
 make
 make install
 
 - mod_mruby settings
 cp -p test/test.mrb /usr/local/apache/htdocs/.
 vi /usr/local/apache/conf/httpd.con
 (snip)
 LoadModule mruby_module   modules/mod_mruby.so
 AddHandler mruby-script .mrb
 (snip)
 /usr/local/apache/bin/apachectl start
 
 - mod_mruby test
 http://youraddress/test.mrb
 snip
 
 Hi again,
 
 I did manage to finally get mod_mruby running on my test server, after a
 lot of tweaking of your source code. In general, you should always
 compile your development modules using _maintainer mode_. This can be
 achieved when you configure the httpd source by running ./configure
 --enable-maintainer-mode. This should also make apxs run using
 maintainer mode, which will alert you to anything about the code which
 doesn't sit right with httpd and the standards we have laid out.

Thank you for your idea. I try to implement it.

 
 As for how the module runs, I'll include mod_mruby in my talk a bit,
 showing how mod_lua compares to it as well as mod_php and mod_perl on
 httpd 2.4 (yes, mod_perl can be built for 2.4 ;) ).
 
 While it shows a good performance - considering Ruby is generally a slow
 language - it does have serious performance issues once you start upping
 the concurrency on 2.4. At only 30 concurrent clients, I am getting a
 lot of disconnects and segmentation faults from mod_mruby, making it
 plummet down to 150 requests per second for a simple hello world script,
 and at 500 concurrent clients, it's as low as 50 requests per second,
 possibly because it crashes the server, which then has to re-spawn new
 workers all the time. I've uploaded a log of GDB at
 http://apaste.info/dsFz which you can possibly use to figure out why
 it's behaving like it does. There also seems to be a lot of other
 exceptions raised when just calling it with 1 client (mrb_exc_raise).

Sorry about that. Your apache mpm is worker, but now mod_mruby work properly
 on prefork mpm. In my future plans, mod_mruby will support thread model like 
event or worker mpm. I'm studying thread models to support event_mpm. 
Thank you for GDB log and I refer to it.

I have checked mod_mruby which work stable on Apache 2.4.2 preform mpm.

 
 I hope you figure these things out, as mod_mruby is a welcome addition
 to the http server :). If you can get it to run stable on 2.4/2.5 before
 ApacheCon, I'd love to try it out again and get some proper performance
 tests going.
 
 With regards,
 Daniel.

I'ts awesome! 

With regards,
Ryosuke.



MATSUMOTO Ryosuke  matsu1229 at gmail.com 
http://blog.matsumoto-r.jp/



Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread 松本 亮介
Hi Daniel,

I tested benchmark of mod_mruby.

test case are: 

- test case 1 mod_mruby inline code into https.conf
mod_mruby need not fopen()

- test case 2 run mod_mruby scripts file per requests
mod_mruby need fopen() and fclose() per requests

- test environment
OS: Linux version 2.6.18-308.16.1.el5PAE
Apache: Apache 2.4.3
MPM: prefork
mod_mruby: Current version
CPU: Intel(R) Xeon(R) CPU   X5355  @ 2.66GHz
Mem: 8GB

-- MPM settings
IfModule mpm_prefork_module
StartServers 5
MinSpareServers  5
MaxSpareServers 10
MaxRequestWorkers  250
MaxConnectionsPerChild   0
/IfModule


-- mod_mruby settings
LoadModule mruby_module   modules/mod_mruby.so
Addhandler mruby-script .mrb
Location /mruby
sethandler mruby-native-script
mrubyHandlerCode Apache.rputs 'hello mod_mruby world'
/Location


-- test case 1 (not open mruby file)
$ curl http://127.0.0.1/mruby
hello mod_mruby world

$ ab -c 100 -n 10 http://127.0.0.1/mruby
This is ApacheBench, Version 2.0.40-dev $Revision: 1.146 $ apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1 requests
Completed 2 requests
Completed 3 requests
Completed 4 requests
Completed 5 requests
Completed 6 requests
Completed 7 requests
Completed 8 requests
Completed 9 requests
Finished 10 requests


Server Software:Apache/2.4.3
Server Hostname:127.0.0.1
Server Port:80

Document Path:  /mruby
Document Length:21 bytes

Concurrency Level:  100
Time taken for tests:   6.859518 seconds
Complete requests:  10
Failed requests:0
Write errors:   0
Total transferred:  17103420 bytes
HTML transferred:   2100420 bytes
Requests per second:14578.28 [#/sec] (mean)
Time per request:   6.860 [ms] (mean)
Time per request:   0.069 [ms] (mean, across all concurrent requests)
Transfer rate:  2434.86 [Kbytes/sec] received

Connection Times (ms)
  min  mean[+/-sd] median   max
Connect:00   0.5  0   5
Processing: 16   1.0  6  10
Waiting:04   1.8  5   8
Total:  16   1.1  6  12

Percentage of the requests served within a certain time (ms)
  50%  6
  66%  7
  75%  7
  80%  7
  90%  8
  95%  8
  98%  8
  99%  9
 100% 12 (longest request)

-- test case 2 (open mruby file)
$ curl http://127.0.0.1/hello.mrb
hello mruby world!!

$ ab -c 100 -n 10 http://127.0.0.1/hello.mrb
This is ApacheBench, Version 2.0.40-dev $Revision: 1.146 $ apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1 requests
Completed 2 requests
Completed 3 requests
Completed 4 requests
Completed 5 requests
Completed 6 requests
Completed 7 requests
Completed 8 requests
Completed 9 requests
Finished 10 requests


Server Software:Apache/2.4.3
Server Hostname:127.0.0.1
Server Port:80

Document Path:  /hello.mrb
Document Length:19 bytes

Concurrency Level:  100
Time taken for tests:   8.106790 seconds
Complete requests:  10
Failed requests:0
Write errors:   0
Total transferred:  16900676 bytes
HTML transferred:   1900076 bytes
Requests per second:12335.34 [#/sec] (mean)
Time per request:   8.107 [ms] (mean)
Time per request:   0.081 [ms] (mean, across all concurrent requests)
Transfer rate:  2035.82 [Kbytes/sec] received

Connection Times (ms)
  min  mean[+/-sd] median   max
Connect:00   0.7  0   7
Processing: 17   5.8  7 389
Waiting:05   6.0  6 388
Total:  17   5.9  7 391

Percentage of the requests served within a certain time (ms)
  50%  7
  66%  8
  75%  8
  80%  8
  90%  9
  95%  9
  98% 10
  99% 10
 100%391 (longest request)


-- refs (ab to static contens like index.html)
$ curl http://127.0.0.1/index.html
htmlbodyh1It works!/h1/body/html

$ ab -c 100 -n 10 http://127.0.0.1/index.html
This is ApacheBench, Version 2.0.40-dev $Revision: 1.146 $ apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1 requests
Completed 2 requests
Completed 3 requests
Completed 4 requests
Completed 5 requests
Completed 6 requests
Completed 7 requests
Completed 8 requests
Completed 9 requests
Finished 10 requests


Server Software:Apache/2.4.3
Server Hostname:127.0.0.1
Server 

Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread Daniel Gruno
On 01/21/2013 01:59 PM, 松本 亮介 wrote:
 Hi Daniel,
 
 I tested benchmark of mod_mruby.
 
 test case are: snip

My main concern here is; is it thread-safe (or even thread-aware)?
Most people will be using 2.4 with the event MPM, which is threaded, not
the prefork MPM. I have no problems doing concurrency on the prefork
MPM, it's with the worker/event MPM that things start to go wrong.

With regards,
Daniel.



Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread 松本 亮介
On 2013/01/21, at 22:03, Daniel Gruno rum...@cord.dk wrote:

 On 01/21/2013 01:59 PM, 松本 亮介 wrote:
 Hi Daniel,
 
 I tested benchmark of mod_mruby.
 
 test case are: snip
 
 My main concern here is; is it thread-safe (or even thread-aware)?
 Most people will be using 2.4 with the event MPM, which is threaded, not
 the prefork MPM. I have no problems doing concurrency on the prefork
 MPM, it's with the worker/event MPM that things start to go wrong.
 

mod_mruby is very fast in the prefork MPM, but is not thread-safe. 
I try to implement thread-safe to mod_mruby. It's challenging!!

Thank you for your reply.

With regards,
Ryosuke.



Re: mod_macro has been added

2013-01-21 Thread Rich Bowen

On Jan 20, 2013, at 5:45 AM, Fabien wrote:

 
 Hello devs,
 
 I've been given the go to add mod_macro to httpd trunk, see r1435811.
 
 The module is in modules/core. There are English and French documentations 
 and extensive non regression tests. The module is compiled in with most. It 
 is fully independent, i.e. I have not changed or modified core stuff for the 
 module. I think it is safe and may be considered for backporting to 2.4, as 
 well as the Warning directive added some time ago.

Forwarding to docs for the few folks that pay more attention there than here.

 
 I'm not sure about how to advertise the use of the module. Possibly something 
 in the standard default configuration, maybe some carefully designed example 
 macros could be defined and use here and there to show how great that can be?
 

Lets put something in conf/extras with an as-simple-as-possible example in it, 
and a pointer to the docs.


 Also, maybe some mention of the module should appear in configuring and 
 sections in the documentation?


I envision something, eventually, along the lines of the Rewrite recipe-style 
docs with howtos for various scenarios. I haven't yet looked through the docs 
that are already provided, but will do so this week and work on integrating it 
into the rest of the docs where it is relevant. I expect that the vhost section 
is an obvious entry point, as that's where I see mod_macro used most 
extensively in the wild.

-- 
Rich Bowen
rbo...@rcbowen.com :: @rbowen
rbo...@apache.org








Re: Plea for eyes (and votes) on STATUS proposals

2013-01-21 Thread Jim Jagielski

On Jan 20, 2013, at 3:56 PM, Daniel Ruggeri drugg...@primary.net wrote:

 On 1/17/2013 6:52 AM, Jim Jagielski wrote:
 *ping* :)
 
 (yeah, I am kinda pushing/hoping for the balancer
 stuff to be in 2.4.4 in time for ACNA13)
 
 
 BalancerPersist:
 Tested fine and works as expected (+1)
 Side note A lot of folks look at the configuration file as the
 canonical source for how the server is configured. With dynamic changes
 persisted, aspects of the configuration can be incorrect. Seems like a
 lot of work, but it may be worth considering a patch to WARN if the conf
 vs restored configs differ.
 

I think we can do a simple log when we are persisting...

 BalancerInherit:
 Bug https://issues.apache.org/bugzilla/show_bug.cgi?id=52402 hampers
 testing of BalancerInherit On case. Bug notes imply that current 2.4
 branch should have a fix for balancer at server level with many vhosts,
 but no one really calls out which commit should fix it so I can confirm.
 Tested with current 2.4.x branch w/ proxypassinherit.patch only...
 Before giving a vote, I'd like to be able to confirm that balancers at
 the server level work again. What patch is needed for this?
 

Disabling BalancerInherit is only needed when using the
Balancer Manager and only if there are conflicts between
a Balancer in the top-level server and a vhost. With BI On,
if a balancer is defined at the top level, then vhosts A
and B get their own individual copy. But when using the Balancer
Manager, it may be difficult or impossible to affect change in
the balancer you want. If you use BM to change the Balancer
of the top-level server, those changes do not get applied to
the vhosts that had inherited them when httpd was 1st started.
This can be confusing.

Having BI Off ensures that:

  1. All Balancers must be explicitly defined for whatever
 vhosts are using them
  2. All changes on those Balancers affect ONLY that specific
 server.





Re: Plea for eyes (and votes) on STATUS proposals

2013-01-21 Thread Daniel Ruggeri
On 1/21/2013 8:26 AM, Jim Jagielski wrote:
 Disabling BalancerInherit is only needed when using the
 Balancer Manager and only if there are conflicts between
 a Balancer in the top-level server and a vhost. With BI On,
 if a balancer is defined at the top level, then vhosts A
 and B get their own individual copy. But when using the Balancer
 Manager, it may be difficult or impossible to affect change in
 the balancer you want. If you use BM to change the Balancer
 of the top-level server, those changes do not get applied to
 the vhosts that had inherited them when httpd was 1st started.
 This can be confusing.

 Having BI Off ensures that:

   1. All Balancers must be explicitly defined for whatever
  vhosts are using them
   2. All changes on those Balancers affect ONLY that specific
  server.

Understood - but with the bug noted earlier, isn't it impossible to have
a balancer at the server level make its way into vhosts any more because
of
[Mon Jan 21 12:06:06.432596 2013] [proxy_balancer:debug] [pid 22337:tid
3075496144] mod_proxy_balancer.c(816): AH01184: Doing workers create:
balancer://mycluster (s5aac9634_mycluster), 480, 2
[Mon Jan 21 12:06:06.432605 2013] [slotmem_shm:debug] [pid 22337:tid
3075496144] mod_slotmem_shm.c(632): AH02293:
slotmem(/usr/local/apache/logs/experimental/slotmem-shm-s5aac9634_mycluster.shm)
grab failed. Num 2/num_free 0
[Mon Jan 21 12:06:06.432612 2013] [proxy_balancer:emerg] [pid 22337:tid
3075496144] (22)Invalid argument: AH01186: worker slotmem_grab failed
[Mon Jan 21 12:06:06.432637 2013] [:emerg] [pid 22337:tid 3075496144]
AH00020: Configuration Failed, exiting

This error happens any time one creates a balancer at server level and
it attempts pushing it down to the vhosts. If I add the BalancerInherit
patch, there is no change until 'BalancerInherit Off'. With it disabled,
at least it starts but of course, none of the vhosts have that
balancer anymore.

So the patch itself seems to work, yes. I was hoping to draw more
attention to the issue of not being able to define balancers at the
server level anymore, though. IMHO, that's a much bigger problem. So is
that bug supposed to be fixed, or do we roll 2.4.4 without this
functionality? I guess it's technically not a regression if it's always
been broken.

--
Daniel Ruggeri



Re: svn commit: r1436396 - /httpd/httpd/branches/2.4.x/STATUS

2013-01-21 Thread Daniel Ruggeri
On 1/21/2013 8:59 AM, j...@apache.org wrote:
   druggeri: (Discussion started on dev@ list)
 * This can not be fully verified until bug 52402 is fixed
 +  jim: 52402 is fixed and is part of the backport for 
 persist below
 * This doesn't seem to do anything for ProxyPass at server 
 level
   but doc seems to imply it does.
 * Can you elaborate more in docs about issues and 
 inconsistences?
 * Doc for 2.4 patch notes version 2.5.0
 + jim: are we OK with changing the 2.4.x docs async?

Argh - saw this after the dev@ reply. Will mess with both patches
together and report back. For now ignore my previous message :-)

--
Daniel Ruggeri



Re: svn commit: r1436396 - /httpd/httpd/branches/2.4.x/STATUS

2013-01-21 Thread Daniel Ruggeri
On 1/21/2013 12:27 PM, Daniel Ruggeri wrote:
 Argh - saw this after the dev@ reply. Will mess with both patches
 together and report back. For now ignore my previous message :-)

Aye - that did it! Sorry for the noise - was testing the two patches
independently.

--
Daniel Ruggeri



Re: mod_mruby to provide an alternative to mod_lua

2013-01-21 Thread 松本 亮介
On 2013/01/21, at 22:17, MATSUMOTO Ryosuke matsu1...@gmail.com wrote:

 On 2013/01/21, at 22:03, Daniel Gruno rum...@cord.dk wrote:
 
 On 01/21/2013 01:59 PM, 松本 亮介 wrote:
 Hi Daniel,
 
 I tested benchmark of mod_mruby.
 
 test case are: snip
 
 My main concern here is; is it thread-safe (or even thread-aware)?
 Most people will be using 2.4 with the event MPM, which is threaded, not
 the prefork MPM. I have no problems doing concurrency on the prefork
 MPM, it's with the worker/event MPM that things start to go wrong.
 
 
 mod_mruby is very fast in the prefork MPM, but is not thread-safe. 
 I try to implement thread-safe to mod_mruby. It's challenging!!
 
 Thank you for your reply.
 
 With regards,
 Ryosuke.
 

Hi Daniel,

I have implemented thread-safe to mod_mruby. 

https://github.com/matsumoto-r/mod_mruby

So, mod_mruby work fine on worker and event MPM.  You can try this before 
ApacheCon.
I try it out again, and get some performance of mod_mruby.

1. benchmark on event MPM

$ ab -c 100 -n 10 http://127.0.0.1/hello.mrb
This is ApacheBench, Version 2.0.40-dev $Revision: 1.146 $ apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1 requests
Completed 2 requests
Completed 3 requests
Completed 4 requests
Completed 5 requests
Completed 6 requests
Completed 7 requests
Completed 8 requests
Completed 9 requests
Finished 10 requests


Server Software:Apache/2.4.3
Server Hostname:127.0.0.1
Server Port:80

Document Path:  /hello.mrb
Document Length:19 bytes

Concurrency Level:  100
Time taken for tests:   7.529994 seconds
Complete requests:  10
Failed requests:0
Write errors:   0
Total transferred:  1690 bytes
HTML transferred:   190 bytes
Requests per second:13280.22 [#/sec] (mean)
Time per request:   7.530 [ms] (mean)
Time per request:   0.075 [ms] (mean, across all concurrent requests)
Transfer rate:  2191.64 [Kbytes/sec] received

Connection Times (ms)
  min  mean[+/-sd] median   max
Connect:00   0.0  0   3
Processing: 16   1.4  7  12
Waiting:16   1.4  7  12
Total:  16   1.4  7  15

Percentage of the requests served within a certain time (ms)
  50%  7
  66%  7
  75%  7
  80%  7
  90%  9
  95%  9
  98%  9
  99% 10
 100% 15 (longest request)


2. benchmark on worker MPM

$ ab -c 100 -n 10 http://127.0.0.1/hello.mrb
This is ApacheBench, Version 2.0.40-dev $Revision: 1.146 $ apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1 requests
Completed 2 requests
Completed 3 requests
Completed 4 requests
Completed 5 requests
Completed 6 requests
Completed 7 requests
Completed 8 requests
Completed 9 requests
Finished 10 requests


Server Software:Apache/2.4.3
Server Hostname:127.0.0.1
Server Port:80

Document Path:  /hello.mrb
Document Length:19 bytes

Concurrency Level:  100
Time taken for tests:   9.578192 seconds
Complete requests:  10
Failed requests:0
Write errors:   0
Total transferred:  16902873 bytes
HTML transferred:   1900323 bytes
Requests per second:10440.38 [#/sec] (mean)
Time per request:   9.578 [ms] (mean)
Time per request:   0.096 [ms] (mean, across all concurrent requests)
Transfer rate:  1723.29 [Kbytes/sec] received

Connection Times (ms)
  min  mean[+/-sd] median   max
Connect:01   0.9  1   4
Processing: 18   0.9  8  29
Waiting:03   1.2  3  29
Total:  19   1.2  9  29

Percentage of the requests served within a certain time (ms)
  50%  9
  66% 10
  75% 10
  80% 10
  90% 10
  95% 11
  98% 11
  99% 11
 100% 29 (longest request)



Re: Plea for eyes (and votes) on STATUS proposals

2013-01-21 Thread Rainer Jung
On 21.01.2013 15:26, Jim Jagielski wrote:
 Disabling BalancerInherit is only needed when using the
 Balancer Manager and only if there are conflicts between
 a Balancer in the top-level server and a vhost. With BI On,
 if a balancer is defined at the top level, then vhosts A
 and B get their own individual copy. But when using the Balancer
 Manager, it may be difficult or impossible to affect change in
 the balancer you want. If you use BM to change the Balancer
 of the top-level server, those changes do not get applied to
 the vhosts that had inherited them when httpd was 1st started.
 This can be confusing.

Understood and agreed.

 Having BI Off ensures that:
 
   1. All Balancers must be explicitly defined for whatever
  vhosts are using them
   2. All changes on those Balancers affect ONLY that specific
  server.

I find it hard to really understand what's going on after applying the
patch. Many configuration items are still inherited even with BI Off,
but the underlying balancers and/or workers are no longer inherited.
Examples are ProxyPass or Proxy. I am unsure what kind of behavior
this could lead to. For example I tested:

ProxyPass /p/ balancer://myvhost:8080/
Proxy balancer://myvhost:8080/
BalancerMember http://myvhost:8080/
/Proxy

BalancerInherit Off

VirtualHost *:8080
DocumentRoot htdocs/myvhost
ServerName myvhost
ErrorLog logs/myvhost-error_log
CustomLog logs/myvhost-access_log common
/VirtualHost

In this case the ProxyPass rule is inherited from the global server to
the VHost myvhost. When I access

curl -D - http://myvhost:8080/p/

I get a status 500 error page. VHost error log contains:

mod_proxy_balancer.c(73): canonicalising URL //loghost:8080/
proxy_util.c(1849): *: found reverse proxy worker for balancer://loghost/
mod_proxy.c(1081): AH01143: Running scheme balancer handler (attempt 0)
mod_proxy_http.c(2173): AH01113: HTTP: declining URL balancer://loghost/
AH01144: No protocol handler was valid for the URL /p/. If you are using
a DSO version of mod_proxy, make sure the proxy submodules are included
in the configuration using LoadModule.

It is unexpected that the rule gets inherited but the worker needed by
the rule not. I understand the reservations of Graham about breaking
configs, but i think the proposed implementation is harder to understand.

I don't have a solution, but I don't feel comfortable with the current
inherit proposal either. I'm very open for comments!

Regards,

Rainer


Re: svn commit: r1436396 - /httpd/httpd/branches/2.4.x/STATUS

2013-01-21 Thread Jim Jagielski
No worries! Thx for the review!

On Jan 21, 2013, at 1:35 PM, Daniel Ruggeri drugg...@primary.net wrote:

 On 1/21/2013 12:27 PM, Daniel Ruggeri wrote:
 Argh - saw this after the dev@ reply. Will mess with both patches
 together and report back. For now ignore my previous message :-)
 
 Aye - that did it! Sorry for the noise - was testing the two patches
 independently.
 
 --
 Daniel Ruggeri