Re: svn commit: r1420377 - in /httpd/httpd/trunk: docs/manual/mod/mod_lua.xml modules/lua/lua_apr.c modules/lua/lua_apr.h modules/lua/mod_lua.c
Am 12.12.2012 22:44, schrieb Marion Christophe JAILLET: Here are a few things triggered by cppcheck. Le 11/12/2012 21:08, humbed...@apache.org a écrit : Author: humbedooh Date: Tue Dec 11 20:08:24 2012 New Revision: 1420377 URL: http://svn.apache.org/viewvc?rev=1420377view=rev Log: mod_lua: Add a lot of core httpd/apr functionality to mod_lua (such as regex matching, expr evaluation, changing/fetching server configuration/info - see docs for a complete list). This also includes a bunch of automatically scraped functions, which may or may not be super useful. Comments appreciated as always, especially on the more hacky bits. Modified: httpd/httpd/trunk/modules/lua/lua_apr.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/lua_apr.c?rev=1420377r1=1420376r2=1420377view=diff == --- httpd/httpd/trunk/modules/lua/lua_apr.c (original) +++ httpd/httpd/trunk/modules/lua/lua_apr.c Tue Dec 11 20:08:24 2012 I've put the parsed file on: http://people.apache.org/~jailletc36/lua_apr.html Check it from there. Things noticed by cppcheck are red-marked. Except the 'The scope of the variable '...' can be reduced' that can be ignored, all the other remarks are relevant. Especially: a useless apr_pcalloc (line 249) a out of bound access (line 321) -- I don't know if Rsha1 should be [20] or if the loop should be limited to 16 this seems to be a cut and paste error from lua_apr_md5 a uninitialized variable (line 430) beside these probs there are type mismatches which break strict compilers: AR obj_release/lua.lib CC mod_lua.c CC lua_apr.c ### mwccnlm Compiler: #File: lua_apr.c # -- # 278: apr_md5_final(digest.chr, md5); # Error:^ # illegal implicit conversion from 'char[16]' to # 'unsigned char *' # Too many errors printed, aborting program User break, cancelled... make[2]: *** [obj_release/lua_apr.o] Error 2 CC lua_config.c CC lua_request.c ### mwccnlm Compiler: #File: lua_request.c # -- # 230: if (lua_read_body(r, data, size) != OK) { # Error: ^ # illegal implicit conversion from 'unsigned int *' to # 'long long *' # Too many errors printed, aborting program User break, cancelled... make[2]: *** [obj_release/lua_request.o] Error 2 Daniel, please check the used types more carefully and either change them or cast. Gün.
Re: svn commit: r1420377 - in /httpd/httpd/trunk: docs/manual/mod/mod_lua.xml modules/lua/lua_apr.c modules/lua/lua_apr.h modules/lua/mod_lua.c
On 12/14/2012 10:48 AM, Guenter Knauf wrote: Am 12.12.2012 22:44, schrieb Marion Christophe JAILLET: Here are a few things triggered by cppcheck. Le 11/12/2012 21:08, humbed...@apache.org a écrit : Author: humbedooh Date: Tue Dec 11 20:08:24 2012 New Revision: 1420377 URL: http://svn.apache.org/viewvc?rev=1420377view=rev Log: mod_lua: Add a lot of core httpd/apr functionality to mod_lua (such as regex matching, expr evaluation, changing/fetching server configuration/info - see docs for a complete list). This also includes a bunch of automatically scraped functions, which may or may not be super useful. Comments appreciated as always, especially on the more hacky bits. Modified: httpd/httpd/trunk/modules/lua/lua_apr.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/lua_apr.c?rev=1420377r1=1420376r2=1420377view=diff == --- httpd/httpd/trunk/modules/lua/lua_apr.c (original) +++ httpd/httpd/trunk/modules/lua/lua_apr.c Tue Dec 11 20:08:24 2012 I've put the parsed file on: http://people.apache.org/~jailletc36/lua_apr.html Check it from there. Things noticed by cppcheck are red-marked. Except the 'The scope of the variable '...' can be reduced' that can be ignored, all the other remarks are relevant. Especially: a useless apr_pcalloc (line 249) a out of bound access (line 321) -- I don't know if Rsha1 should be [20] or if the loop should be limited to 16 this seems to be a cut and paste error from lua_apr_md5 a uninitialized variable (line 430) beside these probs there are type mismatches which break strict compilers: AR obj_release/lua.lib CC mod_lua.c CC lua_apr.c ### mwccnlm Compiler: #File: lua_apr.c # -- # 278: apr_md5_final(digest.chr, md5); # Error:^ # illegal implicit conversion from 'char[16]' to # 'unsigned char *' # Too many errors printed, aborting program User break, cancelled... make[2]: *** [obj_release/lua_apr.o] Error 2 CC lua_config.c CC lua_request.c ### mwccnlm Compiler: #File: lua_request.c # -- # 230: if (lua_read_body(r, data, size) != OK) { # Error: ^ # illegal implicit conversion from 'unsigned int *' to # 'long long *' # Too many errors printed, aborting program User break, cancelled... make[2]: *** [obj_release/lua_request.o] Error 2 Daniel, please check the used types more carefully and either change them or cast. Gün. Thanks for the heads up, guys! I didn't receive Christophe's email, which is why I didn't put these fixes up till now. I will try to use that cppcheck program in the future, it seems very nice, and catches some things that my regular compiler warning settings don't. So thanks for that as well :) With regards, Daniel.
Re: svn commit: r1420377 - in /httpd/httpd/trunk: docs/manual/mod/mod_lua.xml modules/lua/lua_apr.c modules/lua/lua_apr.h modules/lua/mod_lua.c
Hi Daniel, Am 14.12.2012 11:17, schrieb Daniel Gruno: Thanks for the heads up, guys! I didn't receive Christophe's email, which is why I didn't put these fixes up till now. I will try to use that cppcheck program in the future, it seems very nice, and catches some things that my regular compiler warning settings don't. So thanks for that as well :) you can also use maintainer mode when compiling which adds a bunch of gcc flags which might spot some more issues where a normal build doesnt even warn about. BTW. on topic there's another small issue which you introduced a while back (and it got even backported to 2.4.x already): http://svn.apache.org/viewvc?view=revisionrevision=1365539 it makes no sense to set this define in mod_lua.h - it is still required to build liblua 5.2 with the same define - otherwise you will get linkage errors: ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_apr.o ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_config.o ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_config.o ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_request.o ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_request.o ### mwldnlm Linker Error: # Undefined symbol: luaL_openlib in # lua_request.o so IMO the right solution would be to introduce a check for luaL_openlib in config.m4 and disable the module if not present, and if present then set the LUA_COMPAT_ALL via CFLAGS from config.m4 ... Gün.
Balancer Persist testing
I played around with the current backport proposal for balancer persistence, ie. persisting config changes applied to proxy balancer via the Balancer Manager GUI interface to disk and reloading them during startup. I made some observations. My setup uses a globally defined balancer with two members and another two globally defined ones with each one member. All members are different. Platform is Solaris 10 Sparc. I also use two vhosts, but those are only the targets of the members. Further local setting: ProxyStatus Full BalancerPersist On ProxyPassInherit Off (also in the vhosts) Findings: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. - A warning might be needed about mixing changes via balancer manager and via config: - If changing the path for a balancer in config while persist is on and then restarting, the balancer manager shows the old path from the persisted shm, but it seems the new one from the config is in effect. - E.g. setting a member state to stopped in config and again doing a persist restart, the old state from shm wins and the change in config is ignored. So it seems before applying changes to the config one should always backport all changes applied via the manager (not trivial, because you'd have to check all displayed values against the configured ones), then stop, then remove the *.persist files, apply config changes and start again. - Switching persistence from on to off in config and then doing a restart keeps the old .persist files around. They are ignored during the startup as expected, but next time you'll switch back to persist on, the outdated .persist file will again be loaded. - Elected display in balancer manager survives restart, whereas To and From (byte counts) do not. Findings for proxy unrelated to persistance: - sometimes the busy display in balancer manager shows a 1 instead of 0 after an ab test run. Often it goes down again to 0 after the next test run. - when using a high concurrency in ab the global server (reverse proxy) which forwards to two vhosts reports AH01102: error reading status line from remote server apache:9092 and I couldn't yet track it down to either keep alive, process recycles or dynamic listener deactivation. Regards, Rainer
Re: Balancer Persist testing
On Dec 14, 2012, at 7:10 AM, Rainer Jung rainer.j...@kippdata.de wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. This is intentional actually. The configs are maintained, but the stats are not, since we must start the counting from scratch since the config has changed. - A warning might be needed about mixing changes via balancer manager and via config: - If changing the path for a balancer in config while persist is on and then restarting, the balancer manager shows the old path from the persisted shm, but it seems the new one from the config is in effect. - E.g. setting a member state to stopped in config and again doing a persist restart, the old state from shm wins and the change in config is ignored. +1 So it seems before applying changes to the config one should always backport all changes applied via the manager (not trivial, because you'd have to check all displayed values against the configured ones), then stop, then remove the *.persist files, apply config changes and start again. - Switching persistence from on to off in config and then doing a restart keeps the old .persist files around. They are ignored during the startup as expected, but next time you'll switch back to persist on, the outdated .persist file will again be loaded. Yeah, good point... - Elected display in balancer manager survives restart, whereas To and From (byte counts) do not. Again intentional.
[PATCH] Install cache_common.h as needed by mod_cache.h
Greetings, I'm trying to get back in the httpd saddle and currently fiddling with building an out-of-tree cache provider (ie. our hacked disk cache module). However, compilation bombs because mod_cache.h wants to include cache_common.h, but cache_common.h is not included in the installed tree in httpd 2.4.3 (and not in trunk either AFAICT). Anyhow, the attached patch installs cache_common.h as well. mod_cache.h is currently quite useless without it.. /Nikke -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se | ni...@acc.umu.se --- If there was a wait for Q to show up, would there be a Q queue? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--- ../dist/Makefile.in 2012-01-23 00:30:14.0 +0100 +++ Makefile.in 2012-12-14 13:18:18.0 +0100 @@ -202,6 +202,7 @@ $(srcdir)/modules/core/mod_so.h \ $(srcdir)/modules/core/mod_watchdog.h \ $(srcdir)/modules/cache/mod_cache.h \ + $(srcdir)/modules/cache/cache_common.h \ $(srcdir)/modules/database/mod_dbd.h \ $(srcdir)/modules/dav/main/mod_dav.h \ $(srcdir)/modules/filters/mod_include.h \
Re: Balancer Persist testing
On 14.12.2012 13:39, Jim Jagielski wrote: On Dec 14, 2012, at 7:10 AM, Rainer Jung rainer.j...@kippdata.de wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. This is intentional actually. The configs are maintained, but the stats are not, since we must start the counting from scratch since the config has changed. Note that Used isn't the request count. It is the number of slots already occupied with data (so typically it shows the number of members of the balancer). If dropping it to 0 after restart is intended, what's the meaning of the field then? - A warning might be needed about mixing changes via balancer manager and via config: - If changing the path for a balancer in config while persist is on and then restarting, the balancer manager shows the old path from the persisted shm, but it seems the new one from the config is in effect. - E.g. setting a member state to stopped in config and again doing a persist restart, the old state from shm wins and the change in config is ignored. +1 So it seems before applying changes to the config one should always backport all changes applied via the manager (not trivial, because you'd have to check all displayed values against the configured ones), then stop, then remove the *.persist files, apply config changes and start again. - Switching persistence from on to off in config and then doing a restart keeps the old .persist files around. They are ignored during the startup as expected, but next time you'll switch back to persist on, the outdated .persist file will again be loaded. Yeah, good point... - Elected display in balancer manager survives restart, whereas To and From (byte counts) do not. Again intentional. From the above I got the impression you wanted to not persist stats. So why not also drop Elected? Is it, because Elected by itself is never used for a balancing decision, whereas From and To are in case bytraffic is used? Then I would understand the reason technically, but for users it will be a bit confusing to persist the number of requests but not the traffic. I would then prefer to not persist the number of requests as well. Otherwise the data shown after restart is inconsistent. Very nice feature, but hard to get it right! Regards, Rainer
Re: Balancer Persist testing
Yeah... basically, whenever we change the configuration, we need to reset all the counters which are used for any of the lbmethods, since: 1. The old stats are no longer applicable, and would invalidate the lbmethod 2. In the process of adding/subtracting workers or balancers, we may have also changed lbmethods. Other data fields are more statistical values, and so retaining them may, or may not, have value... either retaining or clearing them is fine with me; I have no strong prefs one way or the other. On Dec 14, 2012, at 8:36 AM, Rainer Jung rainer.j...@kippdata.de wrote: On 14.12.2012 13:39, Jim Jagielski wrote: On Dec 14, 2012, at 7:10 AM, Rainer Jung rainer.j...@kippdata.de wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. This is intentional actually. The configs are maintained, but the stats are not, since we must start the counting from scratch since the config has changed. Note that Used isn't the request count. It is the number of slots already occupied with data (so typically it shows the number of members of the balancer). If dropping it to 0 after restart is intended, what's the meaning of the field then? - A warning might be needed about mixing changes via balancer manager and via config: - If changing the path for a balancer in config while persist is on and then restarting, the balancer manager shows the old path from the persisted shm, but it seems the new one from the config is in effect. - E.g. setting a member state to stopped in config and again doing a persist restart, the old state from shm wins and the change in config is ignored. +1 So it seems before applying changes to the config one should always backport all changes applied via the manager (not trivial, because you'd have to check all displayed values against the configured ones), then stop, then remove the *.persist files, apply config changes and start again. - Switching persistence from on to off in config and then doing a restart keeps the old .persist files around. They are ignored during the startup as expected, but next time you'll switch back to persist on, the outdated .persist file will again be loaded. Yeah, good point... - Elected display in balancer manager survives restart, whereas To and From (byte counts) do not. Again intentional. From the above I got the impression you wanted to not persist stats. So why not also drop Elected? Is it, because Elected by itself is never used for a balancing decision, whereas From and To are in case bytraffic is used? Then I would understand the reason technically, but for users it will be a bit confusing to persist the number of requests but not the traffic. I would then prefer to not persist the number of requests as well. Otherwise the data shown after restart is inconsistent. Very nice feature, but hard to get it right! Regards, Rainer
Re: Push for 2.4.4
I just tried to build for AIX and I am getting linker errors. Testing with 2.4.3, to verify that still works, and that is still looking good. If that succeeds, I'll see if I can find what is wrong - looks to be SSL related (and X509 iirc). On Wed, Dec 12, 2012 at 2:00 PM, Jim Jagielski j...@jagunet.com wrote: We have just a handful of backports in STATUS, and most are awaiting just a single additional +1 to be approved. Let's push on clearing STATUS and getting a 2.4.4 out before the Christmas holiday...
cac certificate help
Hello, I need to capture all the certs which are present on CAC card, e.g. mail signing or mail encryption etc. What I can do to capture these certs when user presents CAC card for site authentication? Thanks S
build error preventing build of AIX on 2.4.x
I do not want to hijack anyone's thread, so a quick update on the build status of 2.4.X before Xmas (and AIX). httpd-2.4.3 (still) builds. httpd-2.4.x: michael@x054:[/data/prj/httpd/httpd-2.4.x]jsvn info Path: . URL: http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x Repository Root: http://svn.apache.org/repos/asf Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68 Revision: 1421860 Node Kind: directory Schedule: normal Last Changed Author: jim Last Changed Rev: 1421830 Last Changed Date: 2012-12-14 13:51:31 +0100 (Fri, 14 Dec 2012) The error is in building the support tools (ab fails). Maybe a new export file is needed? I do not know how to make one :( Bug is filed as: https://issues.apache.org/bugzilla/show_bug.cgi?id=54297 If anyone has a suggestion (and/or lesson) I'll try and work on it this weekend, otherwise on Monday. Michael
Re: Push for 2.4.4
On 12.12.2012 14:00, Jim Jagielski wrote: We have just a handful of backports in STATUS, and most are awaiting just a single additional +1 to be approved. Let's push on clearing STATUS and getting a 2.4.4 out before the Christmas holiday... I'm all for it. Rainer
Re: Balancer Persist testing
On 12/14/2012 01:10 PM, Rainer Jung wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. IMHO this should actually be a desired behaviour. I suppose one would expect to have a 'clean room' after restart. Regards -- ^TM
Re: Balancer Persist testing
On 14.12.2012 17:11, Mladen Turk wrote: On 12/14/2012 01:10 PM, Rainer Jung wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. IMHO this should actually be a desired behaviour. I suppose one would expect to have a 'clean room' after restart. Please note that Used isn't what it sounds like. It is not a use counter. It indicates how many slots in slotmem are taken by balancer member instances, e.g. if your balancer has two members, the Used shows 2 before restart and 0 after. Regards, Rainer
Re: Balancer Persist testing
On 12/14/2012 05:15 PM, Rainer Jung wrote: On 14.12.2012 17:11, Mladen Turk wrote: On 12/14/2012 01:10 PM, Rainer Jung wrote: - The Used count in balancer manager drops to 0 after restart/reboot with persist on. It seems the slot management is not completely right. Not yet further investigated. IMHO this should actually be a desired behaviour. I suppose one would expect to have a 'clean room' after restart. Please note that Used isn't what it sounds like. It is not a use counter. It indicates how many slots in slotmem are taken by balancer member instances, e.g. if your balancer has two members, the Used shows 2 before restart and 0 after. Ah, I thought you were referring to runtime statistical data. Regards -- ^TM
Re: svn commit: r1420377 - in /httpd/httpd/trunk: docs/manual/mod/mod_lua.xml modules/lua/lua_apr.c modules/lua/lua_apr.h modules/lua/mod_lua.c
On 12/14/2012 2:17 AM, Daniel Gruno wrote: On 12/14/2012 10:48 AM, Guenter Knauf wrote: Am 12.12.2012 22:44, schrieb Marion Christophe JAILLET: Here are a few things triggered by cppcheck. Le 11/12/2012 21:08, humbed...@apache.org a écrit : Author: humbedooh Date: Tue Dec 11 20:08:24 2012 New Revision: 1420377 URL: http://svn.apache.org/viewvc?rev=1420377view=rev Log: mod_lua: Add a lot of core httpd/apr functionality to mod_lua (such as regex matching, expr evaluation, changing/fetching server configuration/info - see docs for a complete list). This also includes a bunch of automatically scraped functions, which may or may not be super useful. Comments appreciated as always, especially on the more hacky bits. Modified: httpd/httpd/trunk/modules/lua/lua_apr.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/lua_apr.c?rev=1420377r1=1420376r2=1420377view=diff == --- httpd/httpd/trunk/modules/lua/lua_apr.c (original) +++ httpd/httpd/trunk/modules/lua/lua_apr.c Tue Dec 11 20:08:24 2012 Thanks for the heads up, guys! I didn't receive Christophe's email, which is why I didn't put these fixes up till now. I will try to use that cppcheck program in the future, it seems very nice, and catches some things that my regular compiler warning settings don't. So thanks for that as well :) Evidently an unused variable. .\lua_request.c(227) : warning C4101: 'z' : unreferenced local variable On the Windows side of things; lua_apr.c in use all over are uint32_t and we do not have uint32_t available. apr_uint32_t works well. Then there is; .\lua_apr.c(567) : error C2440: 'function' : cannot convert from 'apr_os_thread_t' to 'lua_Number' In scoreboard.h, tms is declared if HAVE_TIMES is defined. I assume that is sys/times.h which we do not seem to have. It seems there may be an APR alternative to this that I saw in modules\dav\fs\repos.c which may or may not be usable here or Windows will just have to go without these if possible. .\lua_apr.c(575) : error C2039: 'times' : is not a member of 'worker_score' c:\build4\httpd-head-r1421953\include\scoreboard.h(90) : see declaration of 'worker_score' .\lua_apr.c(579) : error C2039: 'times' : is not a member of 'worker_score' c:\build4\httpd-head-r1421953\include\scoreboard.h(90) : see declaration of 'worker_score' Regards, Gregg
Re: svn commit: r1420377 - in /httpd/httpd/trunk: docs/manual/mod/mod_lua.xml modules/lua/lua_apr.c modules/lua/lua_apr.h modules/lua/mod_lua.c
On 12/14/2012 09:34 PM, Gregg Smith wrote: Evidently an unused variable. .\lua_request.c(227) : warning C4101: 'z' : unreferenced local variable On the Windows side of things; lua_apr.c in use all over are uint32_t and we do not have uint32_t available. apr_uint32_t works well. Then there is; .\lua_apr.c(567) : error C2440: 'function' : cannot convert from 'apr_os_thread_t' to 'lua_Number' In scoreboard.h, tms is declared if HAVE_TIMES is defined. I assume that is sys/times.h which we do not seem to have. It seems there may be an APR alternative to this that I saw in modules\dav\fs\repos.c which may or may not be usable here or Windows will just have to go without these if possible. .\lua_apr.c(575) : error C2039: 'times' : is not a member of 'worker_score' c:\build4\httpd-head-r1421953\include\scoreboard.h(90) : see declaration of 'worker_score' .\lua_apr.c(579) : error C2039: 'times' : is not a member of 'worker_score' c:\build4\httpd-head-r1421953\include\scoreboard.h(90) : see declaration of 'worker_score' Regards, Gregg Bloody Windows ;) But thanks a ton for your help, Gregg :) I have added an #ifdef for the tms stuff, as I saw mod_status did the same. If there is another way of making it work, I will change it as soon as I find a proper way to deal with it. With regards, Daniel.