From hodgeselizabeth@example.com Wed Mar 01 23:39:39 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 90627 invoked from network); 1 Mar 2006 23:39:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 1 Mar 2006 23:39:38 -0000 Received: (qmail 20957 invoked by uid 500); 1 Mar 2006 23:40:24 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 20914 invoked by uid 500); 1 Mar 2006 23:40:23 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 20903 invoked by uid 99); 1 Mar 2006 23:40:23 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 15:40:23 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO illustrious.cnchost.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 15:40:21 -0800 Received: from [83.161.120.155] (c-24-13-128-132.hsd1.il.comcast.net [83.161.120.155]) by illustrious.cnchost.com id SAA05866; Wed, 1 Mar 2006 18:40:00 -0500 (EST) [ConcentricHost SMTP Relay 1.17] Errors-To: <hodgeselizabeth@example.com> Message-ID: <hodgeselizabeth@example.com> Date: Wed, 01 Mar 2006 17:37:35 -0600 From: "William A. Rowe, Jr." <hodgeselizabeth@example.com> User-Agent: Mozilla Thunderbird 1.0.7-1.1.fc3 (X11/20050929) X-Accept-Language: en-us, en MIME-Version: 1.0 To: hodgeselizabeth@example.com Subject: [Fwd: svn commit: r382095 - /apr/apr/trunk/file_io/win32/filepath.c] Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Brad and I spent quite a bit of time this afternoon on what the original code and new code do. It raised a very interesting question. If I, the developer, combine a relative -or- empty left hand side expression and add a path that's *absolute*, but flagged the apr_filepath_merge as APR_FILEPATH_NOTABOVEROOT, what happens? My thought is that an empty or null left-hand side expression should correspond conceptually to the cwd, or a totally unrooted location. If that's true, then merging an absolute addpath should fail as above root(!) What say you all? Bill -------- Original Message -------- Subject: svn commit: r382095 - /apr/apr/trunk/file_io/win32/filepath.c Date: Wed, 01 Mar 2006 17:41:23 -0000 From: hodgeselizabeth@example.com Reply-To: hodgeselizabeth@example.com To: hodgeselizabeth@example.com Author: wrowe Date: Wed Mar 1 09:41:22 2006 New Revision: 382095 URL: http://svn.apache.org/viewcvs?rev=382095&view=rev Log: Revert 239927 and simplify a much more basic optimization to address if a basepath existed to compare the results to. Also reverts my attempt 382043 to fix the flaw. Any further 'features' to support alternate constructs of NOTABOVEROOT tested base and add paths must be brought up on list for discussion. PR: 38801 Reported by: <kevin_wise motorola.com> Modified: apr/apr/trunk/file_io/win32/filepath.c Modified: apr/apr/trunk/file_io/win32/filepath.c URL: http://svn.apache.org/viewcvs/apr/apr/trunk/file_io/win32/filepath.c?rev=382095&r1=382094&r2=382095&view=diff ============================================================================== --- apr/apr/trunk/file_io/win32/filepath.c (original) +++ apr/apr/trunk/file_io/win32/filepath.c Wed Mar 1 09:41:22 2006 @@ -800,18 +800,17 @@ * is still within given basepath. Note that the root path * segment is thoroughly tested prior to path parsing. */ - if ((flags & APR_FILEPATH_NOTABOVEROOT) && (baselen || rootlen)) { - if (basepath[baselen - 1] != '/' && basepath[baselen - 1] != '\\') { - if (baselen && memcmp(basepath, path + rootlen, baselen)) - return APR_EABOVEROOT; - - /* Ahem... if we weren't given a trailing slash on the basepath, - * we better be sure that /foo wasn't replaced with /foobar! - */ - if (path[rootlen + baselen] && path[rootlen + baselen] != '/' - && path[rootlen + baselen] != '\\') - return APR_EABOVEROOT; - } + if ((flags & APR_FILEPATH_NOTABOVEROOT) && baselen) { + if (memcmp(basepath, path + rootlen, baselen) != 0) + return APR_EABOVEROOT; + + /* Ahem... if we have a basepath without a trailing slash, + * we better be sure that /foo wasn't replaced with /foobar! + */ + if (basepath[baselen - 1] != '/' && basepath[baselen - 1] != '\\' + && path[rootlen + baselen] && path[rootlen + baselen] != '/' + && path[rootlen + baselen] != '\\') + return APR_EABOVEROOT; } if (addpath && (flags & APR_FILEPATH_TRUENAME)) { From hodgeselizabeth@example.com Thu Mar 02 04:46:39 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 9813 invoked from network); 2 Mar 2006 04:46:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Mar 2006 04:46:39 -0000 Received: (qmail 94133 invoked by uid 500); 2 Mar 2006 04:47:25 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 94099 invoked by uid 500); 2 Mar 2006 04:47:24 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 94087 invoked by uid 99); 2 Mar 2006 04:47:24 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 20:47:24 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO Boron.MeepZor.Com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 20:47:23 -0800 Received: from Boron.MeepZor.Com (localhost [83.161.120.155]) by Boron.MeepZor.Com (8.12.8/8.12.8) with ESMTP id k224jeHx013245; Wed, 1 Mar 2006 23:46:00 -0500 Received: (from cvs@localhost) by Boron.MeepZor.Com (8.12.8/8.12.8/Submit) id k224jJhf013232; Wed, 1 Mar 2006 23:45:19 -0500 Date: Wed, 1 Mar 2006 23:45:19 -0500 Message-Id: <hodgeselizabeth@example.com> Content-Type: text/plain X-Application: $Id: report-status.pl,v 1.3 2005/03/30 10:13:06 coar Exp $ MIME-Version: 1.0 Subject: [STATUS] (apr) Wed Mar 1 23:45:19 2006 From: Rodent of Unusual Size <hodgeselizabeth@example.com> To: APR developers <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N APACHE PORTABLE RUNTIME (APR) LIBRARY STATUS: -*-text-*- Last modified at [$Date: 2005-10-27 20:39:26 -0400 (Thu, 27 Oct 2005) $] Releases: Standalone 1.3.0 : in development 1.2.2 : released October 11, 2005 1.2.1 : released August 18, 2005 1.2.0 : not released 1.1.1 : released March 17, 2005 1.1.0 : released January 25, 2005 1.0.1 : released November 19, 2004 1.0.0 : released September 1, 2004 0.9.7 : released October 11, 2005 0.9.6 : released February 4, 2005 0.9.5 : released November 19, 2004 0.9.4 : released September 25, 2003 0.9.3 : released April 3, 2003 0.9.2 : released March 22, 2003 0.9.1 : released September 11, 2002 0.9.0 : released August 28, 2002 Bundled with httpd 2.0a9 : released December 12, 2000 2.0a8 : released November 20, 2000 2.0a7 : released October 8, 2000 2.0a6 : released August 18, 2000 2.0a5 : released August 4, 2000 2.0a4 : released June 7, 2000 2.0a3 : released April 28, 2000 2.0a2 : released March 31, 2000 2.0a1 : released March 10, 2000 RELEASE SHOWSTOPPERS: CURRENT VOTES: CURRENT test/testall -v EXCEPTIONS: Please add any platform anomilies to the following exception list. * various tests fail on Unix in VPATH builds. * 'testipsub' will tickle an Solaris 8 getaddrinfo() IPv6 bug, causing the test to hang. Configure with --disable-ipv6 if using an unpatched Solaris 8 installation. * The 'testdso' tests will not work if configured with --disable-shared since the loadable modules cannot be built. * 'testdso' fails on older versions of OpenBSD due to dlsym(NULL, ...) segfaulting. * BUG: Win32 fails test in File Info: test_stat_eq_finfo apr_stat and apr_getfileinfo differ in protection ... wrowe guesses that we are checking the handle objects' permissions rather than the filesystem objects' permissions. * Win32 Not Implemented tests Pipes: set_timeout/read_write; can't timeout blocking pipes Socket Creation: tcp6_socket and udp6_socket (at least by default) Socket Options: corkable: TCP isn't corkable Users: username: Groups from apr_uid_get not implemented RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: * Someone needs to port testucs to Unix. Right now it only works on Windows. OtherBill asks; should we have a test/arch/xxx tree? The ucs implementation is an internal for unicode/utf-8 win32isms. * The return type of a thread function (void *) is inconsistent with the type used in apr_thread_exit()/apr_thread_join() (apr_status_t). The thread function's return type should be changed to apr_status_t so that a return from the thread main function has the same effect as apr_thread_exit(). See Message-Id: <hodgeselizabeth@example.com> for thread discussing this. +1: BrianH, Aaron, david, jerenkrantz Status: Will Rowe was working on this. * Need some architecture/OS specific versions of the atomic operations. progress: generic, solaris Sparc, FreeBSD5, linux, and OS/390 done need: AIX, AS400, HPUX * The new lock API is a full replacement for the old API, but is not yet complete on all platforms. Components that are incomplete or missing include: Netware: apr_proc_mutex_*() (Is proc_mutex unnecessary on Netware?) * proc_mutex is not necessary on NetWare since the OS does not support processes. The proc_mutex APIs actually redirect to the thread_mutex APIs. (bnicholes) OS/2: apr_thread_cond_*(), apr_proc_mutex_*() Less critical components that we may wish to add at some point: Beos: apr_thread_rwlock_try*lock() apr_proc_mutex_trylock() Unix: apr_thread_rwlock_*() for platforms w/o rwlocks in pthread Win32: apr_thread_cond_timedwait(), apr_proc_mutex_*() (Is proc_mutex unnecessary on Win32?) * Need to contemplate apr_strftime... platforms vary. OtherBill suggested this solution (but has no time to implement): Document our list of 'supported' escapes. Run some autoconf/m4 magic against the complete list we support. Move the strftime re-implementation from time/win32 to time/unix. Add some APR_HAVE_STRFTIME magic to use the system fn, or fail over to time/unix/strftime.c. Message-ID: <025e01c1a891$bf41f660$94c0b0d0@v505> * Using reentrant libraries with non-threaded APR - Anecdotal evidence exists that suggests it is bad to mix reentrant and non-reentrant libraries and therefore we should always use the reentrant versions. - Unfortunately, on some platforms (AIX 4.2.1) defining the reentrant flag (-D_THREAD_SAFE) causes builds to fail, and so one would expect --disable-threads to fix this. Although this has been fixed for that particular version of AIX, it may be useful to only enable the reentrant versions when threads are enabled. How will we deal with this issue once APR becomes a standalone library? It is perfectly legitimate to have apps needing both versions (threaded/reentrant and non-threaded/non-reentrant) on the same machine. * Pools debugging - Find a way to do check if a pool is used in multiple threads, while the creation flags say it isn't. IOW, when the pool was created with APR_POOL_FNEWALLOCATOR, but without APR_POOL_FLOCK. Currently, no matter what the creation flags say, we always create a lock. Without it integrity_check() and apr_pool_num_bytes() blow up (because they traverse pools child lists that possibly belong to another thread, in combination with the pool having no lock). However, this might actually hide problems like creating a child pool of a pool belonging to another thread. Maybe a debug function apr_pool_set_owner(apr_thread_t *) in combination with extra checks in integrity_check() will point out these problems. apr_pool_set_owner() would need to be called everytime the owner(the thread the pool is being used in) of the pool changes. - Implement apr_pool_join and apr_pool_lock. Those functions are noops at the moment. - Add stats to the pools code. We already have basic stats in debug mode. Stats that tell us about wasted memory in the production code require more thought. Status: Sander Striker is looking into this (low priority) David says this is a 1.1 issue. * Get OTHER_CHILD support into Win32 Status: Bill S. is looking into this * Win32 apr_proc_create fails to create 16 bit apps detached (a win32 bug.) The question - test in advance (slow) or recover gracefully from failure and try again? Only the test method will work on Win9x, since it will appear to work, only to encounter mangled pipes. Win2K (NT?) simply fails. * SysV semaphore support isn't usable by Apache when started as root because we don't have a way to allow the semaphore to be used by the configured User and Group. Current work-around: change the initial permissions to 0666. Needed code: See 1.3's http_main.c, SysV sem flavor of accept_mutex_init(). Status: Jim will look into this Update: Apache deals with this itself, though it might be nice if APR could do something. * Build scripts do not recognise AIX 4.2.1 pthreads Justin says: "Is this still true?" * FirstBill says we need a new procattr, APR_CREATE_SUSPENDED (or something similar) to direct ap_create_process to create the process suspended. We also need a call to wake up the suspended process. This may not be able to be implemented everywhere though. Status: OtherBill asks, why? What is the benefit, how is it portably implemented? Unless this creates some tangible that mirrors another platform, then I'm -1. * Replace tables with a proper opaque ADT that has pluggable implementations (including something like the existing data type, plus hash tables for speed, with options for more later). Status: fanf is working on this. * add a version number to apr_initialize() as an extra failsafe against (APR) library version skew. MsgID: <hodgeselizabeth@example.com> Status: Greg -1, Jeff +1, Ryan +1, Tony -0(?), david +1 * add apr_crypt() and APR_HAS_CRYPT for apps to determine whether the crypt() function is available, and a way to call it (whether it is located in libc, libcrypt, or libufc) Justin says: Should apr_crypt() be in apr-util? Status: Greg +1 (volunteers) * configure.in does post-processing on the AC_OUTPUT files (for VPATH support). This means that config.status doesn't do the right thing when you re-run it. We ought to revamp the makefiles to do the right AC_SUBST stuff rather than depend upon rewriting. Sascha: As the rewriter is a crude hack, I would not worry too much about it. It is designed to go away once we have a proper build system in place. One of the perceived deficiencies of automake is that it uses AC_SUBST too often, thereby slowing down the task of generating Makefiles significantly, because it applies dozens of substitutions to each Makefile. And why? Make's built-in macro processing is much more powerful, and combined with the include facility, generating Makefiles becomes simpler and faster. Justin says: "I think this got fixed with Roy's build changes." * use os_(un)cork in network_io/unix/sendrecv.c for FreeBSD's sendfile implementation. david: The socket options stuff is now in and using it should reduce the number of syscalls that are required for os_cork and uncork, so the code should be reviewed to make use of the new calls. If no-one beats me to it I'll get around to it soonish... * toss the per-Makefile setup of INCLUDES; shift to rules.mk.in rbb: This is a bad thing IMHO. If we do this, then we can't use these makefiles for anything else. For example, apr-util * add the rest of the pool accessor declare/impl macros. Justin says: Both thread and file have the accessors now. Any others? Status: Greg volunteers * I think apr_open_stderr() and friends *should* dup() the descriptor. That would allow the new/returned file to be closed (via pool cleanup or manually) without accidentally closing stderr/out. * need to export (in code, not just build scripts) the shared library extension (e.g. ".so") for the platform. clients need to use this to construct filenames to pass to apr_dso_load() -- note on Win32 we distinguish 'apache module' names from other 'loadable module' names, so be careful with Apache's directive. * Possible gmtime_r replacement in explode_time On Solaris (and possibly others), the gmtime_r libc function obtains a mutex. We have seen 21/25 threads being blocked in this mutex on a threaded httpd MPM when requesting static pages. It may be worth it to hand optimize this since there is no real need for a mutex at the system level (straight arithmetic from what I can tell). If you have access to the Solaris source code: osnet_volume/usr/src/lib/libc/port/gen/time_comm.c. * Add a way to query APR for what features it has at runtime (i.e. threads). Justin says: I'm not completely sold on this, but it has been mentioned before and at least added to STATUS. * apr_xlate.h generates a bunch of compiler warnings. Jeff asks: which platform? Justin says: Solaris with Forte 6.1. * fcntl() oddness on Solaris. Under high loads, fcntl() decides to return error code 46 (ENOLCK). httpd (prefork MPM) error log says (predictably): (46)No record locks available: couldn't grab the accept mutex All of the children report this and subsequently exits. httpd is now hosed. AFAICT, this does not look to be an out-of-fds error. Solaris's man page says: ENOLCK The cmd argument is F_SETLK, F_SETLK64, F_SETLKW, or F_SETLKW64 and satisfying the lock or unlock request would result in the number of locked regions in the system exceeding a system-imposed limit. Justin says: What is this system-imposed limit and how do we change it? This gives me more rationale for switching the default interprocess lock mechanism to pthread (if available). Explanation (from Kristofer Spinka <hodgeselizabeth@example.com>): ============ The system imposed default limit of outstanding lock requests is 512. You can verify this by, in a contemporary version of Solaris: # mdb -k > tune_t_flckrec/D tune_t_flckrec: tune_t_flckrec: 512 This can be increased by adding the following to /etc/system: set tune_t_flckrec=1024 and rebooting. Of course "1024" can be any reasonable limit, although we do not know what "reasonable" should be, so be conservative, only increase this as necessary. * Generate a good bug report to send to the FreeBSD hackers that details the problems we have seen with threads and system calls (specifically sendfile data is corrupted). From our analysis so far, we don't think that this is an APR issue, but rather a FreeBSD kernel issue. Our current solution is to just disable threads across the board on FreeBSD. MsgID: <hodgeselizabeth@example.com> Status: Fixed in -CURRENT. MFC in about a week. Continuing testing with threads on FreeBSD. FreeBSD PR kern/32684: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/32684 * There are some optimizations that can be done to the new apr_proc_*() functions (on UNIX). One that may reduce pointer indirection would be to make the apr_proc_mutex_unix_lock_methods_t first-class members of the apr_proc_mutex_t structure. * Condition variables are tricky enough to use, and even trickier to implement properly. We could really use a better test case for those subtle quirks that sometimes creep into CV implementations. * Once we are fully satisfied with the new lock API, we can begin to migrate the old API to be implemented on top of the new one, or just decide to get rid of it altogether. * FreeBSD returns 45 (EOPNOTSUPP) when the lockfile is on a NFS partition when you call fcntl(F_SETLKW). It may be good if we can somehow detect this and error out when creating the lock rather than waiting for the error to occur when acquiring lock. * Fix autoconf tests for strerror_r on BeOS and remove the hack in misc/unix/errorcodes.c to get error reporting working. Committed as the solution is hodgeselizabeth@example.com. * implement APR_PROGRAM_ENV and APR_PROGRAM_PATH on BeOS, OS/2, Netware, and Win32. * stat() on a few platforms (notably Solaris and AIX) succeeds for a non-directory even if a trailing '/' was specified in the name. APR should perhaps simulate the normal -1/ENOTDIR behavior in APR routines which retrieve information about the file. Note: Win2K fails GetFileAttributesEx in this scenario. See OtherBill's comments in this message to hodgeselizabeth@example.com: Message-Id: <83.161.120.155.2.20020315080852.00bce168@localhost> Documentation that needs writing: * API documentation Ian Says: APR Stuff in now in Doxygen format, which is the first step. David says: are we planning on doing any more? I'm tempted to remove this item. * apr-site needs to be revamped with Anakia/XHTML. * Identify and implement those protection bits that have general usefulness, perhaps hidden, generic read-only [immutable], effective current user permissions, etc. * Maybe make the following functions return void instead of apr_status_t, as they cannot ever error: apr_md5_init() apr_md5_update() apr_md5_final() apr_md5_encode() apr_md5() /* plus make the obvious code tweak in this one */ (Volunteer: Karl Fogel <hodgeselizabeth@example.com>.) However, don't do this until after apr and apr-util offer library version numbers, and httpd uses those numbers to indicate which version it needs. Until the libraries are versioned, this api change is [somewhat] painful for httpd. Status: Still in discussion, current leanings appear to be Bill Stoddard -0.5 (?) Sander Striker +1 Greg Stein +1 Karl Fogel +1 david: This was rejected for 1.0 following Ben L's comment that should we ever start using any other form of md5 (e.g. openssl) then errors would become a distinct possibility. API Changes Postponed for APR 2.0: * apr_socket_sendfile(): the offset parameter should not be pass-by-reference, or it should be updated to do something useful. * apr_password_get(): the bufsize parameter should not be pass-by-reference. * apr_allocator.h: apr_memnode_t's use of uint32_t's doesn't match well with allocation sizes being apr_size_t, possibly this can be improved by using apr_size_t throughout. * apr_hash_count() should take a const apr_hash_t * argument. * apr_ino_t should be an ino64_t in LFS builds. * possible type renames: apr_file_info_t from apr_finfo_t apr_file_attrs_t from apr_fileattrs_t apr_file_seek_where_t from apr_seek_where_t apr_lock_mech_e from apr_lockmech_e apr_time_interval_t from apr_interval_time_t apr_time_interval_short_t from apr_short_interval_time_t Stuff for post 1.0: * Almost every API in APR depends on pools, but pool semantics aren't a good match for a lot of applications. We need to find a way to support alternate allocators polymorphically without a significant performance penalty. * apr_global_mutex_child_init and apr_proc_mutex_child_init aren't portable. There are a variety of problems with the locking API when it is used with apr_create_proc instead of apr_fork. First, _child_init doesn't take a lockmech_e parameter so it causes a segfault after the apr_proc_create, because the proc_mutex field hasn't been initialized. When the lockmech_e parameter is added, it _still_ doesn't work, because some lock mechanisms expect to inherit from the parent process. For example, sys V semaphores don't have a file to open, so the child process can't reaquire the lock. jerenkrantz says: This is not a showstopper and I believe the above analysis is slightly confusing. The real problem here is that apr_*_mutex_child_init assumes a shared memory space - that is, the children processes have access to the parent apr_*_mutex_t pointer. The children just call child_init on the original, inherited apr_*_mutex_t. Unlike globalmutexchild in test, apr_*_mutex_create is *not* intended to be called from the child and subsequently call child_init. Instead, apr_create_proc is intended to exec separate processes with disjoint memory addresses. Currently, APR does not provide a cross-platform mechanism for joining an already existing lock. A simple 'apr_*_mutex_join' which is intended to be called from separate processes to an already-existing lock would solve this problem. child_init is not intended to be used this way. Even with SysV semaphores, using IPC_PRIVATE should still work due to the parent-child relationship. A strawman has been posted to dev@apr: Message-Id: <213031CF0406DE1AC426A411@[83.161.120.155]> This was listed as a showstopper for 1.0, but while the 2 patches above exist neither was able to garner enough votes to be included in 1.0. Will Rowe commented that a combination of the 2 would probably be the right approach, a view that seems to have a lot of merit. Hopefully we can solve this post 1.0. There were also enough people who felt that it wasn't a real showstopper for it to be bumped. * Must namespace protect all include/apr_foo.h headers. Jon Travis has especially observed these including apr within Apache-1.3. Message-ID: <hodgeselizabeth@example.com> Deprecating the symbols in 0.9, eliminating them with 1.0. (Those problems have been fixed, but it is a good example of what to look for.) Some headers with issues: apr.hnw (READDIR_IS_THREAD_SAFE, ENUM_BITFIELD, _POSIX_THREAD_SAFE_FUNCTIONS (?)) * Flush out the test suite and make sure it passes on all platforms. We currently have about 450 functions in APR and 147 tests. That means we have a large number of functions that we can't verify are actually portable. This TODO includes finishing the migration to the unified test suite, and adding more tests to make the suite comprehensive. * Eliminate the TODO's and XXX's by using the doxygen @bug feature to allow us to better track the open issues, and provide historical bug lists that help porters understand what was wrong in the old versions of APR that they would be upgrading from. From hodgeselizabeth@example.com Thu Mar 02 04:50:01 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 10829 invoked from network); 2 Mar 2006 04:49:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Mar 2006 04:49:32 -0000 Received: (qmail 95809 invoked by uid 500); 2 Mar 2006 04:49:59 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 95760 invoked by uid 500); 2 Mar 2006 04:49:59 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 95749 invoked by uid 99); 2 Mar 2006 04:49:59 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 20:49:59 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO Boron.MeepZor.Com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Mar 2006 20:49:58 -0800 Received: from Boron.MeepZor.Com (localhost [83.161.120.155]) by Boron.MeepZor.Com (8.12.8/8.12.8) with ESMTP id k224knHx013291; Wed, 1 Mar 2006 23:47:09 -0500 Received: (from cvs@localhost) by Boron.MeepZor.Com (8.12.8/8.12.8/Submit) id k224kSpp013282; Wed, 1 Mar 2006 23:46:28 -0500 Date: Wed, 1 Mar 2006 23:46:28 -0500 Message-Id: <hodgeselizabeth@example.com> Content-Type: text/plain X-Application: $Id: report-status.pl,v 1.3 2005/03/30 10:13:06 coar Exp $ MIME-Version: 1.0 Subject: [STATUS] (apr-util) Wed Mar 1 23:46:28 2006 From: Rodent of Unusual Size <hodgeselizabeth@example.com> To: APR developers <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N APRUTIL LIBRARY STATUS: -*-text-*- Last modified at [$Date: 2005-10-27 20:40:16 -0400 (Thu, 27 Oct 2005) $] Release: 1.3.0 : in development 1.2.2 : released October 11, 2005 1.2.1 : released August 18, 2005 1.2.0 : not released 1.1.2 : released March 17, 2005 1.1.1 : not released 1.1.0 : released January 25, 2005 1.0.1 : released November 19, 2004 1.0.0 : released September 1, 2004 0.9.7 : released October 11, 2005 0.9.6 : released February 7, 2005 0.9.5 : released November 20, 2004 0.9.4 : released September 25, 2003 0.9.3 : tagged March 30, 2002 0.9.2 : released March 22, 2002 (alpha) 0.9.1 : released September 11, 2002 (alpha) 0.9.0 : not released 2.0a9 : released December 12, 2000 RELEASE SHOWSTOPPERS: RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: * Solaris's Sun Freeware (sfw) package has a busted gcc/ld setup. This gcc passes -L/opt/sfw/lib to /usr/ccs/bin/ld, but does not pass -R. Therefore, when trying to run the code using a library from /opt/sfw/lib (say, libdb), the run-time linker will not look in /opt/sfw/lib and the program will die. Status: Workaround is to add "-R/opt/sfw/lib" to LDFLAGS. Should check latest sfw package set and see if Sun may have fixed this. * GDBM usage of errno is not-thread-safe. Fix. Other bugs that need fixing: Other features that need writing: * possibly move test/testdbm* to util/dbu Justin says: Do we still want to do this? testdate is now in test. Status: Greg +1 (volunteers) Documentation that needs writing: * API documentation Status: * doc the lifetimes of apr_dbm return values Available Patches: Open Issues: From hodgeselizabeth@example.com Thu Mar 02 11:35:29 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 91365 invoked from network); 2 Mar 2006 11:35:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Mar 2006 11:35:12 -0000 Received: (qmail 63982 invoked by uid 500); 2 Mar 2006 11:35:57 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 63807 invoked by uid 500); 2 Mar 2006 11:35:56 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 63796 invoked by uid 99); 2 Mar 2006 11:35:56 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 03:35:56 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO mail2a.webresidence.it) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 03:35:55 -0800 Received: from [83.161.120.155] (83.161.120.155) by mail2a.webresidence.it (83.161.120.155) (authenticated as m.spinetti) id 434C474700061328; Thu, 2 Mar 2006 12:35:31 +0100 Message-ID: <hodgeselizabeth@example.com> Date: Thu, 02 Mar 2006 12:33:52 +0100 From: Marco Spinetti <hodgeselizabeth@example.com> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910 X-Accept-Language: en-us, en MIME-Version: 1.0 To: hodgeselizabeth@example.com, hodgeselizabeth@example.com Subject: Modules architecture diff Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Hi all, I'm experimentig some strange performance results for my modules and I hope you can explain me why. I made a test between two modules architecture: my modules have to connect to variuos external sources simultaneously. So I tries these two architectures: 1) No Blocking IO: I 'm using apr poll (apr_pollset_poll) 2) Multi threads: I'im using apr threads; I'm using apache 1.3.34 and my host is RHEL 3 (Linux version 2.4.21-9.0.3.ELsmp) with 2 CPU and 2GB memory. I was expecting that multi-threads architecture was better because with apr_poll you read from opened descriptors a lot of times. In architecture 2) I'm using apr pool for all my memory allocations, while in the first architecture I'm using apache pool too. Analyzing (with gsl) the distribution, the mean, variance and standard deviation of reply time the No Blocking IO is much better: in the multi-threads architecture the variance is greater by a factor of 10. Any ideas about these differences? Were my expectations wrong? Thanks for the support Bye --Marco From hodgeselizabeth@example.com Thu Mar 02 11:55:41 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 4483 invoked from network); 2 Mar 2006 11:55:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Mar 2006 11:55:39 -0000 Received: (qmail 89209 invoked by uid 500); 2 Mar 2006 11:56:18 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 89168 invoked by uid 500); 2 Mar 2006 11:56:18 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 89157 invoked by uid 99); 2 Mar 2006 11:56:18 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 03:56:18 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO asgard.webthing.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 03:56:17 -0800 Received: from asgard (asgard [83.161.120.155]) by asgard.webthing.com (Postfix) with ESMTP id D32046456A for <hodgeselizabeth@example.com>; Thu, 2 Mar 2006 11:55:54 +0000 (GMT) From: Nick Kew <hodgeselizabeth@example.com> Organization: WebThing Ltd To: hodgeselizabeth@example.com Subject: Re: [PATCH]: support for types and fixes of apr_dbd_mysql.c Date: Thu, 2 Mar 2006 11:55:50 +0000 User-Agent: KMail/1.8.3 References: <hodgeselizabeth@example.com> In-Reply-To: <hodgeselizabeth@example.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Tuesday 28 February 2006 01:53, Alex Dubov wrote: > I'm developing an application that requires exchange > of binary and numeric information between MySQL and > apr app. To reduce overhead, I introduced the > following changes (more in the comments): > 1. Data types are obeyed both for arguments and > results of prepared queries > 2. printf-style type formatters in prepared query > strings > 3. dbd_mysql_get_entry still returns pointer to char*, > so programmer must have advance knowledge of data > types involved. > > The patch was tested with mysql 5.0.18 and > apr-util-1.2.2. It's made against a recent > webthing.com version. Thanks for the patch - looks great at first glance. Bug me if nothing happens! > Compatible behavior: > To achieve a pre-patch behavior, one can use '%c' type > specifier for all arguments and sql's CAST(x AS CHAR) > for all result columns. > > Non-prepared queries work as before. > > Rationale: > I was thinking whether it will be better to return a > complex data types instead of char* from > dbd_*_get_entry. It seems that in vast majority of > cases all the data types are known in compile time, so > some clutter can be saved by keeping things simpler > (except for blobs, whom I've wrapped into a trivial > struct). Agreed. I've tinkered with that before. What I'd like to see in a future apr_dbd version is a new API call something like (to be finalised) typedef struct { enum { DBD_STRING,apr_dbd_row_t *row, int col DBD_INT, DBD_REAL, DBD_BLOB, ... /* extensible - how many types work across backends? */ } type; union { /* the various types, or pointers/descriptors here. */ } data; } apr_dbd_entry_t; apr_status_t apr_dbd_get_entry_typed(const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col, apr_dbd_entry_t* ret); Or maybe just use a bucket for the typed data. > > P.S. By the way, was there any progress with inclusion > of apr_dbd_mysql into apr distribution? May be mysql > folks can give a permission for apr to include > apr_dbd_mysql. The mysql free software exception _looks_ fine for us. But it's still not clear how this might affect our users. Some within the ASF are not happy with that. However, you've clearly put some considerable work into this, and you're evidently more in touch with current MySQL than I am. Would it help if I give you commit access to the hodgeselizabeth@example.com? You'll see in the current version there's a call for maintainers! Just let me know your PGP key so I can encrypt a username/password. (it's http, not https, but is protected by digest authentication). -- Nick Kew From hodgeselizabeth@example.com Thu Mar 02 16:37:14 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 83823 invoked from network); 2 Mar 2006 16:37:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Mar 2006 16:37:14 -0000 Received: (qmail 34852 invoked by uid 500); 2 Mar 2006 16:37:59 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 34801 invoked by uid 500); 2 Mar 2006 16:37:58 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 34789 invoked by uid 99); 2 Mar 2006 16:37:58 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 08:37:58 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO mail2a.webresidence.it) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 08:37:58 -0800 Received: from [83.161.120.155] (83.161.120.155) by mail2a.webresidence.it (83.161.120.155) (authenticated as m.spinetti) id 434C47470006165C; Thu, 2 Mar 2006 17:37:34 +0100 Message-ID: <hodgeselizabeth@example.com> Date: Thu, 02 Mar 2006 17:35:57 +0100 From: Marco Spinetti <hodgeselizabeth@example.com> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910 X-Accept-Language: en-us, en MIME-Version: 1.0 To: hodgeselizabeth@example.com, hodgeselizabeth@example.com Subject: Re: [apache-modules] Modules architecture diff References: <hodgeselizabeth@example.com> In-Reply-To: <hodgeselizabeth@example.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Any hints? Marco Spinetti wrote: > Hi all, > I'm experimentig some strange performance results for my modules and I > hope you can explain me why. > I made a test between two modules architecture: my modules have to > connect to variuos external sources simultaneously. So I tries these > two architectures: > > 1) No Blocking IO: I 'm using apr poll (apr_pollset_poll) > 2) Multi threads: I'im using apr threads; > > I'm using apache 1.3.34 and my host is RHEL 3 (Linux version > 2.4.21-9.0.3.ELsmp) with 2 CPU and 2GB memory. > > I was expecting that multi-threads architecture was better because > with apr_poll you read from opened descriptors a lot of times. > In architecture 2) I'm using apr pool for all my memory allocations, > while in the first architecture I'm using apache pool too. > > Analyzing (with gsl) the distribution, the mean, variance and standard > deviation of reply time the No Blocking IO is much better: in the > multi-threads architecture the variance is greater by a factor of 10. > > Any ideas about these differences? > Were my expectations wrong? > > Thanks for the support > > Bye > > --Marco > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: hodgeselizabeth@example.com > For additional commands, e-mail: hodgeselizabeth@example.com > > From hodgeselizabeth@example.com Fri Mar 03 07:25:20 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 61840 invoked from network); 3 Mar 2006 07:25:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 07:25:19 -0000 Received: (qmail 9635 invoked by uid 500); 3 Mar 2006 07:26:05 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 9481 invoked by uid 500); 3 Mar 2006 07:26:04 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 9470 invoked by uid 99); 3 Mar 2006 07:26:04 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2006 23:26:04 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO post.enterra-inc.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 02 Mar 2006 23:26:03 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: Overlapped IO X-MimeOLE: Produced By Microsoft Exchange V6.0.6603.0 Date: Fri, 3 Mar 2006 13:25:40 +0600 content-class: urn:content-classes:message Message-ID: <hodgeselizabeth@example.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Overlapped IO Thread-Index: AcY+k71vLBPhzqr8SpOqbZh41FlwGQ== From: "Konstantin Sharenkov" <hodgeselizabeth@example.com> To: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Hello All. I am interesting=20 Are there any plans to included overlapped IO into apr? It can be implemented for Windows, and for Linux (since 2.6 kernel via io_submit() io_getevents() ) I am not sure that it is possible for other OS. I asked as I am developing the servers which require maximum performance. With best regards Konstantin Sharenkov. From hodgeselizabeth@example.com Fri Mar 03 09:53:05 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 31427 invoked from network); 3 Mar 2006 09:53:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 09:53:04 -0000 Received: (qmail 60941 invoked by uid 500); 3 Mar 2006 09:53:49 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 60906 invoked by uid 500); 3 Mar 2006 09:53:49 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 60893 invoked by uid 99); 3 Mar 2006 09:53:49 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 01:53:49 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO post.enterra-inc.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 03 Mar 2006 01:53:48 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: Overlapped IO X-MimeOLE: Produced By Microsoft Exchange V6.0.6603.0 Date: Fri, 3 Mar 2006 15:53:26 +0600 content-class: urn:content-classes:message Message-ID: <hodgeselizabeth@example.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Overlapped IO Thread-Index: AcY+k71vLBPhzqr8SpOqbZh41FlwGQAE//eg From: "Konstantin Sharenkov" <hodgeselizabeth@example.com> To: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N If there are no such plans you may treat my letter as Feature request I think it would be good idea to have unified interface=20 For - Linux epool - BSD kqueue - Windows OVERLAPPED IO - others over pool() Like in libevent http://www.monkey.org/~provos/libevent/ With best regards Konstantin Sharenkov. -----Original Message----- From: Konstantin Sharenkov=20 Sent: Friday, March 03, 2006 1:26 PM To: hodgeselizabeth@example.com Subject: Overlapped IO Hello All. I am interesting=20 Are there any plans to included overlapped IO into apr? It can be implemented for Windows, and for Linux (since 2.6 kernel via io_submit() io_getevents() ) I am not sure that it is possible for other OS. I asked as I am developing the servers which require maximum performance. With best regards Konstantin Sharenkov. From hodgeselizabeth@example.com Fri Mar 03 10:47:52 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 59563 invoked from network); 3 Mar 2006 10:47:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 10:47:52 -0000 Received: (qmail 39000 invoked by uid 500); 3 Mar 2006 10:48:37 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 38967 invoked by uid 500); 3 Mar 2006 10:48:37 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 38955 invoked by uid 99); 3 Mar 2006 10:48:37 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 02:48:37 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO asgard.webthing.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 02:48:35 -0800 Received: from asgard (asgard [83.161.120.155]) by asgard.webthing.com (Postfix) with ESMTP id 6780E6455A for <hodgeselizabeth@example.com>; Fri, 3 Mar 2006 10:48:14 +0000 (GMT) From: Nick Kew <hodgeselizabeth@example.com> Organization: WebThing Ltd To: hodgeselizabeth@example.com Subject: Re: Overlapped IO Date: Fri, 3 Mar 2006 10:48:11 +0000 User-Agent: KMail/1.8.3 References: <hodgeselizabeth@example.com> In-Reply-To: <hodgeselizabeth@example.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Friday 03 March 2006 09:53, Konstantin Sharenkov wrote: > If there are no such plans you may treat my letter as Feature request How about some more solid proposals: * where would this fit in APR? * what would the API look like? * what benefits does it bring? * what's the fallback for platforms that don't implement it? If you can make a good case for it, and implement it for at least one platform[1], then maybe we might adopt it. [1] Especially if it's wndows, as we have lamentably few windows- hacks on the team. -- Nick Kew From hodgeselizabeth@example.com Fri Mar 03 11:39:44 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 84505 invoked from network); 3 Mar 2006 11:39:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 11:39:42 -0000 Received: (qmail 95125 invoked by uid 500); 3 Mar 2006 11:40:27 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 95090 invoked by uid 500); 3 Mar 2006 11:40:27 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 95079 invoked by uid 99); 3 Mar 2006 11:40:27 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 03:40:27 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO post.enterra-inc.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 03 Mar 2006 03:40:25 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: Overlapped IO X-MimeOLE: Produced By Microsoft Exchange V6.0.6603.0 Date: Fri, 3 Mar 2006 17:40:03 +0600 content-class: urn:content-classes:message Message-ID: <hodgeselizabeth@example.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Overlapped IO Thread-Index: AcY+sAhZNdpmrbeWQNesjnWCdNyrcAABT+1w From: "Konstantin Sharenkov" <hodgeselizabeth@example.com> To: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N I am not ready to answer all questions completely now. I plan to implement Event oriented work with sockets for Linux and Windows soon, After implementation I think I will have enough of experience with it to be able make more concrete answers. But I can offer some short answers: * where would this fit in APR? I think it should be a separate module like apr_ioevent It will implement event oriented work with files sockets and pipes. 'Work' means demultiplex the object which need handling. * what would the API look like? I think most optimal is 'epoll' variant adaptation for apr int epoll_create(int maxfds); int epoll_ctl(int epfd, int op, int fd, unsigned int events); int epoll_wait(int epfd, struct pollfd *events, int maxevents, int timeout); others should be adapted,=20 * what benefits does it bring? Performance improvement for heavy loaded servers, ability to handle 10000+ conections(files) more effective. See more information at: http://www.kegel.com/c10k.html * what's the fallback for platforms that don't implement it? Other platforms will use POSIX poll() function they and will not receive additional performance. Konstantin Sharenkov PS. Sorry for my English. -----Original Message----- From: Nick Kew [mailto:hodgeselizabeth@example.com]=20 Sent: Friday, March 03, 2006 4:48 PM To: hodgeselizabeth@example.com Subject: Re: Overlapped IO On Friday 03 March 2006 09:53, Konstantin Sharenkov wrote: > If there are no such plans you may treat my letter as Feature request How about some more solid proposals: If you can make a good case for it, and implement it for at least one platform[1], then maybe we might adopt it. [1] Especially if it's wndows, as we have lamentably few windows- hacks on the team. --=20 Nick Kew From hodgeselizabeth@example.com Fri Mar 03 16:23:21 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 49273 invoked from network); 3 Mar 2006 16:23:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 16:23:20 -0000 Received: (qmail 11379 invoked by uid 500); 3 Mar 2006 16:24:00 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 11160 invoked by uid 500); 3 Mar 2006 16:23:59 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 11113 invoked by uid 99); 3 Mar 2006 16:23:59 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 08:23:59 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO mail2a.webresidence.it) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 08:23:58 -0800 Received: from [83.161.120.155] (83.161.120.155) by mail2a.webresidence.it (83.161.120.155) (authenticated as m.spinetti) id 434C474700062718 for hodgeselizabeth@example.com; Fri, 3 Mar 2006 17:23:36 +0100 Message-ID: <hodgeselizabeth@example.com> Date: Fri, 03 Mar 2006 17:21:56 +0100 From: Marco Spinetti <hodgeselizabeth@example.com> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev-apr <hodgeselizabeth@example.com> Subject: [Fwd: Modules architecture diff] Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Investing on my multi-threads architecture, today my apache blocked!! Two apache childs blocked and they were consuming all my CPU. As soon as I discovered this problem, I tryed to do strace pids of childs: futex(0x80d29b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) It seems there is some problems with threads .... Do you know if there is some known bugs with apr threads? --Marco -------- Original Message -------- Subject: Modules architecture diff Date: Thu, 02 Mar 2006 12:33:52 +0100 From: Marco Spinetti <hodgeselizabeth@example.com> To: hodgeselizabeth@example.com, hodgeselizabeth@example.com Hi all, I'm experimentig some strange performance results for my modules and I hope you can explain me why. I made a test between two modules architecture: my modules have to connect to variuos external sources simultaneously. So I tries these two architectures: 1) No Blocking IO: I 'm using apr poll (apr_pollset_poll) 2) Multi threads: I'im using apr threads; I'm using apache 1.3.34 and my host is RHEL 3 (Linux version 2.4.21-9.0.3.ELsmp) with 2 CPU and 2GB memory. I was expecting that multi-threads architecture was better because with apr_poll you read from opened descriptors a lot of times. In architecture 2) I'm using apr pool for all my memory allocations, while in the first architecture I'm using apache pool too. Analyzing (with gsl) the distribution, the mean, variance and standard deviation of reply time the No Blocking IO is much better: in the multi-threads architecture the variance is greater by a factor of 10. Any ideas about these differences? Were my expectations wrong? Thanks for the support Bye --Marco -- +-----------------------------------------+ Software Engineer - Spinetti Marco Direzione SS.PSM.TS Mobile: (833)380-4181 Fisso : (833)380-4181 Fax : (833)380-4181 E-mail: hodgeselizabeth@example.com Italia Online S.r.l. Wind Telecomunicazioni Spa Via Malagoli, 12 - 56124 Pisa PI +-----------------------------------------+ From hodgeselizabeth@example.com Fri Mar 03 16:23:29 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 49425 invoked from network); 3 Mar 2006 16:23:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 16:23:27 -0000 Received: (qmail 12549 invoked by uid 500); 3 Mar 2006 16:24:12 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 12503 invoked by uid 500); 3 Mar 2006 16:24:12 -0000 Mailing-List: contact hodgeselizabeth@example.com; run by ezmlm Precedence: bulk List-Post: <mailto:hodgeselizabeth@example.com> List-Help: <mailto:hodgeselizabeth@example.com> List-Unsubscribe: <mailto:hodgeselizabeth@example.com> List-Id: <dev.apr.apache.org> Delivered-To: mailing list hodgeselizabeth@example.com Received: (qmail 12492 invoked by uid 99); 3 Mar 2006 16:24:12 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 08:24:12 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of hodgeselizabeth@example.com designates 83.161.120.155 as permitted sender) Received: from [83.161.120.155] (HELO wproxy.gmail.com) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2006 08:24:09 -0800 Received: by wproxy.gmail.com with SMTP id i24so688356wra for <hodgeselizabeth@example.com>; Fri, 03 Mar 2006 08:23:48 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=QsrqtpxcuYwhpZa0lr5en+eG39t6fuMtLM2D56n1QQ8aZ2gRLoCauVnfGcIe4thDZPbq4Jto7HXodU4ovZ9q8GmfGRBoSo8A2hxEYgFoPZQPpGDp7oNe2N00i/3RgsXuk48e7qe9KjrJvQDX4MItS+mx8nc9j/XOfxV4ZrAKDq8= Received: by 83.161.120.155 with SMTP id f17mr2523930wrb; Fri, 03 Mar 2006 08:23:40 -0800 (PST) Received: by 83.161.120.155 with HTTP; Fri, 3 Mar 2006 08:23:40 -0800 (PST) Message-ID: <hodgeselizabeth@example.com> Date: Fri, 3 Mar 2006 08:23:40 -0800 From: "Garrett Rooney" <hodgeselizabeth@example.com> Sender: hodgeselizabeth@example.com To: hodgeselizabeth@example.com Subject: Re: svn commit: r382752 - /apr/apr/trunk/build/MakeEtags In-Reply-To: <hodgeselizabeth@example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <hodgeselizabeth@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On 3/3/06, hodgeselizabeth@example.com <hodgeselizabeth@example.com> wrote: > Author: maxb > Date: Fri Mar 3 02:26:58 2006 > New Revision: 382752 > > URL: http://svn.apache.org/viewcvs?rev=3D382752&view=3Drev > Log: > * build/MakeEtags: Convert to be useful for APR and APR-util as well as H= TTPD. > Do not hardcode a specific path to etags, use ETAGS envvar, or search P= ATH. > Update URL to "Exuberant ctags" project home. > > PR: 22615 > > Modified: > apr/apr/trunk/build/MakeEtags > > Modified: apr/apr/trunk/build/MakeEtags > URL: http://svn.apache.org/viewcvs/apr/apr/trunk/build/MakeEtags?rev=3D38= 2752&r1=3D382751&r2=3D382752&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- apr/apr/trunk/build/MakeEtags (original) > +++ apr/apr/trunk/build/MakeEtags Fri Mar 3 02:26:58 2006 > @@ -12,22 +12,24 @@ > # tag-table-alist with an entry to assure it finds the single ./TAGS > # file from the many source directories. Something along these lines: > # (setq tag-table-alist > -# '(("/home/me/work/httpd-2.0/" > -# . "/home/me/work/httpd-2.0/") > +# '(("/home/me/work/apr-x.y/" . "/home/me/work/apr-x.y/") > +# ("/home/me/work/apr-util-x.y/" . "/home/me/work/apr-util-x.y/") > +# ("/home/me/work/httpd-x.y/" . "/home/me/work/httpd-x.y/") > # )) > > # This requires a special version of etags, i.e. the > # one called "Exuberant ctags" available at: > -# http://fly.hiwaay.net/~darren/ctags/ > +# http://ctags.sourceforge.net/ > # Once that is setup you'll need to point to the > # executable here: > > -etags=3D~/local/bin/etags > +etags=3D${ETAGS-etags} Isn't that supposed to be ${ETAGS:-etags} ? You seem to have dropped the c= olon. -garrett From hodgeselizabeth@example.com Fri Mar 03 17:51:31 2006 Return-Path: <hodgeselizabeth@example.com> Delivered-To: hodgeselizabeth@example.com Received: (qmail 27756 invoked from network); 3 Mar 2006 17:51:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 3 Mar 2006 17:51:31 -0000 Received: (qmail 20091 invoked by uid 500); 3 Mar 2006 17:52:16 -0000 Delivered-To: hodgeselizabeth@example.com Received: (qmail 20057 invoked by uid 500); 3 Mar 2006 17:52:16 -0000 Mailing-List: contact
{'source': 'Apache Software Foundation Public Mail Archives'}