Re: async write completion prototype

2005-10-23 Thread Brian Pane

On Oct 18, 2005, at 7:11 AM, Greg Ames wrote:


Brian Pane wrote:

I think one contributor to the event results is an issue that  
Paul  Querna
pointed out on #httpd-dev the other day: apr_pollset_remove runs  
in O(n)

time with n descriptors in the pollset.



thanks, I see it.  yeah we are going to have to do something about  
that.


I just committed a change to the epoll version that eliminates the
O(n) loop--and the mutex operations and a bit of data structure
copying.

The version of the Event MPM on the async-dev branch takes
advantage of this new feature.  I'm seeing a ~5% increase in
throughput in a simple test setup (http_load on a client machine
driving ~200 concurrent connections over 1Gb/s ethernet to
Apache running on Linux 2.6).

If anybody with a more industrial-strength load testing setup
can try the async-dev version of the Event MPM with a few
thousand concurrent connections, I'm eager to hear whether
this new epoll code yields a useful speedup.

Thanks,
Brian



Re: async write completion prototype

2005-10-23 Thread Paul Querna

Brian Pane wrote:

On Oct 18, 2005, at 7:11 AM, Greg Ames wrote:


Brian Pane wrote:

I think one contributor to the event results is an issue that Paul  
Querna

pointed out on #httpd-dev the other day: apr_pollset_remove runs in O(n)
time with n descriptors in the pollset.



thanks, I see it.  yeah we are going to have to do something about that.


I just committed a change to the epoll version that eliminates the
O(n) loop--and the mutex operations and a bit of data structure
copying.


Awesome! I really like it, a very nice addition to apr_pollset. I will 
try to update APR with KQueue support on Sunday.



The version of the Event MPM on the async-dev branch takes
advantage of this new feature.  I'm seeing a ~5% increase in
throughput in a simple test setup (http_load on a client machine
driving ~200 concurrent connections over 1Gb/s ethernet to
Apache running on Linux 2.6).

If anybody with a more industrial-strength load testing setup
can try the async-dev version of the Event MPM with a few
thousand concurrent connections, I'm eager to hear whether
this new epoll code yields a useful speedup.
I agree, I have had problems in the past telling if any changes to the 
Event MPM have good or bad performance implications.  Some of it is best 
guess, but it really would be nice to have a semi-reliable way to 
benchmark it that included Keep Alive connections.


-Paul





Re: mod_ldap crash on exit (found why)

2005-10-23 Thread William A. Rowe, Jr.

Vadim Chekan wrote:

httpd version: current/trunk (2.2?)
Platform: win xp pro SP2

I built Apache, added
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
...
LDAPSharedCacheFile "c:\ldap.cache"

and this causes crash on exit. The crash happends at util_ldap_cache_mgr.c:
util_ald_destroy_cache(). It attempts to free() a node with some
garbage address.
After some investigation I noticed that address of cache->nodes
changes between process start and process ends.

To make long story short:
st->cache is allocated in shared memory.
cache->nodes is also allocated in shared memory.
Let's say parent process creates cache and nodes. Then parent executes
cache->nodes = ShmAllocate(...);

The child process starts. It attach to shared memory and do the same,
allocate and, attention:
cache->nodes = ShmAllocate(...);


Yes - on Win32 this is an 'attach'...


But as soon as this memory is shared, addres cache->nodes for child is
different from parent. So child overrites parents cache->nodes!


There are raw pointers in the shm?  Well, in a fork() that's expected, but
in attached shared memory, that's an invalid assumption.  All 'pointers'
within a shm must be an off_t from the shm base and dereferenced relative
to the client's base address mapping.


Then, on exit parent attempts to release an address that is
meaningless in its process space.


That indicates a lack of symmetry.


Another thing I don't like too much is that both, parent and children
will call apr_shm_destroy()
I think correct way to do it would be children call detach() and only
parent calls destroy()


Not an issue, the shm isn't destroyed until the last reference is released.


BTW: could comebody explain, how modules configs are shared between
processes? Is an instance created by each process? Main process shares
them with children via shared memory?


On unix, it's already set up prior to fork(), on Win32 the config is passed
from the parent->child and set up in that local child process.  It's not
'shared memory' - even on unix the child's copy is local to that process.

Therefore the only way to share info (e.g. caches and scoreboard) is to
declare shared memory sections.

Bill


Re: mod_ldap crash on exit (found why)

2005-10-23 Thread Vadim Chekan
On 10/23/05, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote:
> Vadim Chekan wrote:
>
> > But as soon as this memory is shared, addres cache->nodes for child is
> > different from parent. So child overrites parents cache->nodes!
>
> There are raw pointers in the shm?  Well, in a fork() that's expected, but
> in attached shared memory, that's an invalid assumption.  All 'pointers'
> within a shm must be an off_t from the shm base and dereferenced relative
> to the client's base address mapping.
>
>
> Bill
>

Thans for your reply Bill,

Is there a maintainer for this module or should I start working on a
patch tha uses offset instead of address in shm?

Vadim.


Re: mod_ldap crash on exit (found why)

2005-10-23 Thread Graham Leggett

Vadim Chekan wrote:


Is there a maintainer for this module or should I start working on a
patch tha uses offset instead of address in shm?


The module is maintained, but it definitely needs more attention under 
Windows. If you provide a patch, it will definitely be reviewed.


Regards,
Graham
--


smime.p7s
Description: S/MIME Cryptographic Signature


Re: APR version of support/logresolve.c

2005-10-23 Thread Dirk-Willem van Gulik


On Fri, 21 Oct 2005, Colm MacCarthaigh wrote:

>   http://people.apache.org/~colm/logresolve.c

I'd love to see this going in !

Dw.


Bug report for Apache httpd-1.3 [2005/10/23]

2005-10-23 Thread bugzilla
+---+
| Bugzilla Bug ID   |
| +-+
| | Status: UNC=Unconfirmed NEW=New ASS=Assigned|
| | OPN=ReopenedVER=Verified(Skipped Closed/Resolved)   |
| |   +-+
| |   | Severity: BLK=Blocker CRI=CriticalMAJ=Major |
| |   |   MIN=Minor   NOR=Normal  ENH=Enhancement   |
| |   |   +-+
| |   |   | Date Posted |
| |   |   |  +--+
| |   |   |  | Description  |
| |   |   |  |  |
| 8329|New|Nor|2002-04-20|mime_magic gives 500 and no error_log on Microsoft|
| 8372|Ass|Nor|2002-04-22|Threadsaftey issue in Rewrite's cache [Win32/OS2/N|
| 8849|New|Nor|2002-05-07|make install errors as root on NFS shares |
| 8882|New|Enh|2002-05-07|[PATCH] mod_rewrite communicates with external rew|
| 9037|New|Min|2002-05-13|Slow performance when acessing an unresolved IP ad|
| 9126|New|Blk|2002-05-15|68k-next-openstep v. 4.0  |
| 9726|New|Min|2002-06-09|Double quotes should be flagged as T_HTTP_TOKEN_ST|
| 9894|New|Maj|2002-06-16|getline sub in support progs collides with existin|
| |New|Nor|2002-06-19|Incorrect default manualdir value with layout.|
|10038|New|Min|2002-06-20|ab benchmaker hangs on 10K https URLs with keepali|
|10073|New|Maj|2002-06-20|upgrade from 1.3.24 to 1.3.26 breaks include direc|
|10169|New|Nor|2002-06-24|Apache seg faults due to attempt to access out of |
|10178|New|Maj|2002-06-24|Proxy server cuts off begining of buffer when spec|
|10195|New|Nor|2002-06-24|Configure script erroneously detects system Expat |
|10199|New|Nor|2002-06-24|Configure can't handle directory names with unders|
|10243|New|Maj|2002-06-26|CGI scripts not getting POST data |
|10354|New|Nor|2002-06-30|ErrorDocument(.htaccess) fails when passed URL wit|
|10446|Opn|Blk|2002-07-03|spaces in link to http server seen as foreign char|
|10666|New|Enh|2002-07-10|line-end comment error message missing file name  |
|10744|New|Nor|2002-07-12|suexec might fail to open log file|
|10747|New|Maj|2002-07-12|ftp SIZE command and 'smart' ftp servers results i|
|10760|New|Maj|2002-07-12|empty ftp directory listings from cached ftp direc|
|10939|New|Maj|2002-07-18|directory listing errors  |
|11020|New|Maj|2002-07-21|APXS only recognise tests made by ./configure |
|11236|New|Min|2002-07-27|Possible Log exhaustion bug?  |
|11265|New|Blk|2002-07-29|mod_rewrite fails to encode special characters|
|11765|New|Nor|2002-08-16|.apaci.install.tmp installs in existing httpd.conf|
|11986|New|Nor|2002-08-23|Restart hangs when piping logs on rotation log pro|
|12096|New|Nor|2002-08-27|apxs does not handle binary dists installed at non|
|12574|New|Nor|2002-09-12|Broken images comes from mod_proxy when caching ww|
|12583|New|Nor|2002-09-12|First piped log process do not handle SIGTERM |
|12598|Opn|Maj|2002-09-12|Apache hanging in Keepalive State |
|12770|Opn|Nor|2002-09-18|ErrorDocument fail redirecting error 400  |
|13188|New|Nor|2002-10-02|does not configure correctly for hppa64-hp-hpux11.|
|13274|Ass|Nor|2002-10-04|Subsequent requests are destroyed by the request e|
|13607|Opn|Enh|2002-10-14|Catch-all enhancement for vhost_alias?|
|13687|New|Min|2002-10-16|Leave Debug symbol on Darwin  |
|13822|New|Maj|2002-10-21|Problem while running Perl modules accessing CGI::|
|14095|Opn|Nor|2002-10-30|Change default Content-Type (DefaultType) in defau|
|14250|New|Maj|2002-11-05|Alternate UserDirs don't work intermittantly  |
|14443|New|Maj|2002-11-11|Keep-Alive randomly causes TCP RSTs   |
|14448|Opn|Cri|2002-11-11|Apache WebServer not starting if installed on Comp|
|14518|Opn|Nor|2002-11-13|QUERY_STRING parts not incorporated by mod_rewrite|
|14670|New|Cri|2002-11-19|Apache didn't deallocate unused memory|
|14748|New|Nor|2002-11-21|Configure Can't find DBM on Mac OS X  |
|15011|New|Nor|2002-12-03|Apache processes not timing out on Solaris 8  |
|15028|New|Maj|2002-12-03|RedirectMatch does not escape properly|
|16236|New|Maj|2003-01-18|Include directive in Apache is not parsed within c|
|16241|New|Maj|2003-01-19|Apache processes takes 100% CPU until killed manua|
|16492|New|Maj|2003-01-28|mod_proxy doesn't correctly retrieve values from C|
|16493|New|Nor|2003-01-28|Incorrect handling of several Cache-Control direct|
|16556|

Bug report for Apache httpd-2.0 [2005/10/23]

2005-10-23 Thread bugzilla
+---+
| Bugzilla Bug ID   |
| +-+
| | Status: UNC=Unconfirmed NEW=New ASS=Assigned|
| | OPN=ReopenedVER=Verified(Skipped Closed/Resolved)   |
| |   +-+
| |   | Severity: BLK=Blocker CRI=CriticalMAJ=Major |
| |   |   MIN=Minor   NOR=Normal  ENH=Enhancement   |
| |   |   +-+
| |   |   | Date Posted |
| |   |   |  +--+
| |   |   |  | Description  |
| |   |   |  |  |
| 7483|Ass|Enh|2002-03-26|Add FileAction directive to assign a cgi interpret|
| 7741|Ass|Nor|2002-04-04|some directives may be placed outside of proper co|
| 7862|New|Enh|2002-04-09|suexec never log a group name.|
| 8483|Inf|Min|2002-04-24|apache_2.0 .msi installer breaks .log and .conf fi|
| 8713|New|Min|2002-05-01|No Errorlog on PROPFIND/Depth:Infinity|
| 8925|New|Cri|2002-05-09|Service Install (win32 .msi/.exe) fails for port i|
| 9727|New|Min|2002-06-09|Double quotes should be flagged as T_HTTP_TOKEN_ST|
| 9903|Opn|Maj|2002-06-16|mod_disk_cache does not remove temporary files|
| 9945|New|Enh|2002-06-18|[PATCH] new funtionality for apache bench |
|10114|Ass|Enh|2002-06-21|Negotiation gives no weight to order, only q value|
|10154|Ass|Nor|2002-06-23|ApacheMonitor interferes with service uninstall/re|
|10722|Opn|Nor|2002-07-12|ProxyPassReverse doesn't change cookie paths  |
|10775|Ass|Cri|2002-07-13|SCRIPT_NAME wrong value   |
|10932|Opn|Enh|2002-07-18|Allow Negative regex in LocationMatch |
|11035|New|Min|2002-07-22|Apache adds double entries to headers generated by|
|11294|New|Enh|2002-07-30|desired vhost_alias option|
|11427|Opn|Maj|2002-08-02|Possible Memory Leak in CGI script invocation |
|11540|Opn|Nor|2002-08-07|ProxyTimeout ignored  |
|11580|Opn|Enh|2002-08-09|generate Content-Location headers |
|11971|Opn|Nor|2002-08-23|HTTP proxy header "Via" with wrong hostname if Ser|
|11997|Opn|Maj|2002-08-23|Strange critical errors possibly related to mpm_wi|
|12033|Opn|Nor|2002-08-26|Graceful restart immidiately result in [warn] long|
|12340|Opn|Nor|2002-09-05|WindowsXP proxy, child process exited with status |
|12680|New|Enh|2002-09-16|Digest authentication with integrity protection   |
|12885|New|Enh|2002-09-20|windows 2000 build information: mod_ssl, bison, et|
|13029|New|Nor|2002-09-26|Win32 mod_cgi failure with non-ASCII characters in|
|13101|Inf|Cri|2002-09-27|Using mod_ext_filter with mod_proxy and http/1.1 c|
|13507|New|Enh|2002-10-10|capturing stderr from mod_cgi |
|13599|Ass|Nor|2002-10-14|autoindex formating broken for multibyte sequences|
|13603|New|Nor|2002-10-14|incorrect DOCUMENT_URI in mod_autoindex with Heade|
|13661|Ass|Enh|2002-10-15|Apache cannot not handle dynamic IP reallocation  |
|13946|Inf|Nor|2002-10-24|reverse proxy errors when a document expires from |
|13986|Ass|Enh|2002-10-26|remove default MIME-type  |
|14016|Inf|Nor|2002-10-28|Problem when using mod_ext_filter with ActivePerl |
|14090|New|Maj|2002-10-30|mod_cgid always writes to main server error log   |
|14206|New|Nor|2002-11-04|DirectoryIndex circumvents -FollowSymLinks option |
|14227|Ass|Nor|2002-11-04|Error handling script is not started (error 500) o|
|14496|New|Enh|2002-11-13|Cannot upgrade 2.0.39 -> 2.0.43. Must uninstall fi|
|14556|Inf|Nor|2002-11-14|mod_cache with mod_mem_cache enabled doesnt cash m|
|14858|New|Enh|2002-11-26|mod_cache never caches responses for requests requ|
|14922|Ass|Enh|2002-11-28| is currently hardcoded to 'apache2'  |
|15045|Ass|Nor|2002-12-04|addoutputfilterbytype doesn't work for defaulted t|
|15221|New|Nor|2002-12-10|reference to old script: sign.sh  |
|15233|Opn|Nor|2002-12-10|move AddType application/x-x509-ca-cert from ssl.c|
|15235|New|Nor|2002-12-10|add application/x-x509-email-cert, application/x-x|
|15625|New|Nor|2002-12-23|mention mod_ssl in http://nagoya.apache.org/dist/h|
|15626|New|Nor|2002-12-23|mention which modules are part of the (binary) dis|
|15631|New|Nor|2002-12-23|mention in httpd.conf that mod_ssl is not included|
|15719|Inf|Nor|2002-12-30|WebDAV MOVE to destination URI which is content-ne|
|15757|Opn|Nor|2003-01-02|Assumption of sizeof (void*)/int begin equal (64-b|
|15857|Opn|Nor|2003-01-07|MUST handle "chunked" response with a 16385Byte-lo|
|15859|Opn|Nor|

Re: svn commit: r327872 - in /httpd/httpd/trunk: CHANGES include/httpd.h server/core_filters.c

2005-10-23 Thread Colm MacCarthaigh
On Sun, Oct 23, 2005 at 10:38:41PM -, [EMAIL PROTECTED] wrote:
> Modified: httpd/httpd/trunk/server/core_filters.c
> URL: 
> http://svn.apache.org/viewcvs/httpd/httpd/trunk/server/core_filters.c?rev=327872&r1=327871&r2=327872&view=diff
> ==
> --- httpd/httpd/trunk/server/core_filters.c (original)
> +++ httpd/httpd/trunk/server/core_filters.c Sun Oct 23 15:38:35 2005
> @@ -26,6 +26,7 @@
>  #include "apr_hash.h"
>  #include "apr_thread_proc.h"/* for RLIMIT stuff */
>  #include "apr_hooks.h"
> +#include "apr_support.h"
>  
>  #define APR_WANT_IOVEC
>  #define APR_WANT_STRFUNC
> @@ -57,6 +58,7 @@
>  #include "mod_so.h" /* for ap_find_loaded_module_symbol */
>  
>  #define AP_MIN_SENDFILE_BYTES   (256)
> +// #define APR_HAS_SENDFILE 0

sneaky! :-)

-- 
Colm MacCárthaighPublic Key: [EMAIL PROTECTED]


2.1.9 Next Weekend

2005-10-23 Thread Paul Querna
Just a heads up, I plan on doing a 2.1.9 tag/release late this week, 
most likely on Friday or Saturday.


Help with back porting to branches/2.2.x is always welcome.

-Paul


The 2.2.0 Process

2005-10-23 Thread Paul Querna
As we get closer to the next stable/GA branch, I want to clarify with 
everyone how I imagine the process will happen.  This isn't the process 
that is documented in VERSIONING, but I think it deals better with the 
2.1.x -> 2.2.0 jump.



1) 2.1.N is tagged.

2) 2.1.N is voted on for BETA.

3) Assuming the vote passes, several days after releasing 2.1.N-BETA, a 
vote to mark 2.1.N-BETA as Stable/General Availability will be called 
for by the 2.1.N Release Manager.


4) If the vote passes, the 2.1.N tag will be copied to 2.2.0.  Only the 
version numbers will be changed in Subversion.  This 2.2.0 tarball will 
be placed in /dev/dist/ for final sanity voting.  This final vote 
*should* be used only to verify that the packaging of the tag is 
correct.  The code is identical to what passed the GA vote in step 3.


5) 2.2.0 will be released.

Thoughts/Concerns?

Thanks,

-Paul


Re: async write completion prototype

2005-10-23 Thread Brian Pane

On Oct 10, 2005, at 5:15 PM, Greg Ames wrote:

- event-ize lingering close.  it eats up roughly the same number of  
worker threads as synchronous writes for SPECweb99.


Is this because the lingering close is waiting a while for the client to
close the inbound side of the connection?  Or is the lingering close
finding that the connection is closed as soon as it does the "wait for
I/O or timeout"--meaning that the reason the server spends a lot of
time in lingering close is simply that the code for lingering close
(poll+read+close plus various setsockopt calls) takes a while?

Brian