Hello community, here is the log from the commit of package apache2 checked in at Fri Mar 23 21:40:51 CET 2007. -------- --- apache2/apache2.changes 2007-03-20 10:47:41.000000000 +0100 +++ /mounts/work_src_done/STABLE/apache2/apache2.changes 2007-03-23 08:57:50.000000000 +0100 @@ -1,0 +2,10 @@ +Fri Mar 23 08:55:47 CET 2007 - poeml@suse.de + +- add mod_dbd.c from trunk (r512038), the version we run ourselves + http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/database/mod_dbd.c?vi... +- add mod_dbd.c-issue18989-autoconnect.dif, but disabled. It + applies to 2.2.4 mod_dbd.c but not to the trunk version +- build mod_version +- fix documentation link in apache2-httpd.conf + +------------------------------------------------------------------- New: ---- mod_dbd.c-issue18989-autoconnect.dif mod_dbd.c-r512038 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apache2.spec ++++++ --- /var/tmp/diff_new_pack.F12991/_old 2007-03-23 21:32:42.000000000 +0100 +++ /var/tmp/diff_new_pack.F12991/_new 2007-03-23 21:32:42.000000000 +0100 @@ -54,7 +54,7 @@ Group: Productivity/Networking/Web/Servers %define realver 2.2.4 Version: 2.2.4 -Release: 11 +Release: 12 #Source0: http://www.apache.org/dist/httpd-%{version}.tar.bz2 Source0: http://httpd.apache.org/dev/dist/httpd-%{realver}.tar.bz2 Source10: SUSE-NOTICE @@ -99,6 +99,7 @@ Source131: apache2-vhost-ssl.template Source140: apache2-check_forensic Source141: apache-20-22-upgrade +Source150: mod_dbd.c-r512038 Patch2: httpd-2.1.3alpha-layout.dif Patch10: httpd-2.1.3alpha-autoconf-2.59.dif Patch23: httpd-2.1.9-apachectl.dif @@ -107,6 +108,7 @@ Patch67: httpd-2.2.0-apxs-a2enmod.dif Patch68: httpd-2.2.3-AddDirectoryIndexCharset.patch Patch69: httpd-2.2.x.doublefree.patch +Patch150: mod_dbd.c-issue18989-autoconnect.dif URL: http://httpd.apache.org/ Icon: Apache.xpm Summary: The Apache Web Server Version 2.0 @@ -303,6 +305,8 @@ %patch67 -p1 %patch68 -p1 %patch69 -p0 +cp -p %{S:150} modules/database/mod_dbd.c +#%patch150 -p0 # cat $RPM_SOURCE_DIR/SUSE-NOTICE >> NOTICE # @@ -378,6 +382,7 @@ --enable-cache \ --enable-disk-cache \ --enable-mem-cache \ + --enable-version \ \ --enable-dav-lock \ --enable-authn-alias \ @@ -676,10 +681,12 @@ EOT_ED mv apxs apxs%{vers} popd + # install firewall information file install -d $RPM_BUILD_ROOT%{_sysconfdir}/SuSEfirewall2.d/services/ install -m 644 %{S:49} $RPM_BUILD_ROOT%{_sysconfdir}/SuSEfirewall2.d/services/%{name} install -m 644 %{S:50} $RPM_BUILD_ROOT%{_sysconfdir}/SuSEfirewall2.d/services/%{name}-ssl + # # filelists # @@ -1030,6 +1037,13 @@ fi %changelog +* Fri Mar 23 2007 - poeml@suse.de +- add mod_dbd.c from trunk (r512038), the version we run ourselves + http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/database/mod_dbd.c?vi... +- add mod_dbd.c-issue18989-autoconnect.dif, but disabled. It + applies to 2.2.4 mod_dbd.c but not to the trunk version +- build mod_version +- fix documentation link in apache2-httpd.conf * Tue Mar 20 2007 - mskibbe@suse.de - add firewall file for ssl (#246929) * Mon Mar 19 2007 - mskibbe@suse.de ++++++ apache2-httpd.conf ++++++ --- apache2/apache2-httpd.conf 2006-05-24 17:18:42.000000000 +0200 +++ /mounts/work_src_done/STABLE/apache2/apache2-httpd.conf 2007-02-19 00:06:28.000000000 +0100 @@ -15,7 +15,7 @@ # configuration of your virtual hosts. # Quickstart guide: -# /usr/share/doc/packages/apache2/README.QUICKSTART +# http://www.opensuse.org/Apache_Howto_Quickstart # Overview of include files, chronologically: ++++++ mod_dbd.c-issue18989-autoconnect.dif ++++++ --- modules/database/mod_dbd.c.orig 2006-05-18 10:59:22.000000000 -0700 +++ modules/database/mod_dbd.c 2006-05-18 10:57:10.000000000 -0700 @@ -433,6 +432,7 @@ svr_cfg *svr = ap_get_module_config(s->module_config, &dbd_module); apr_status_t rv = APR_SUCCESS; const char *errmsg; + int tries; if (!svr->persist) { /* Return a once-only connection */ @@ -445,14 +445,33 @@ return NULL; } } - rv = apr_reslist_acquire(svr->dbpool, &rec); - if (rv != APR_SUCCESS) { - ap_log_perror(APLOG_MARK, APLOG_ERR, rv, pool, - "Failed to acquire DBD connection from pool!"); - return NULL; - } - rv = apr_dbd_check_conn(arec->driver, pool, arec->handle); - if ((rv != APR_SUCCESS) && (rv != APR_ENOTIMPL)) { + /* PR#39329: implement retries here + * How many times to retry? Well, svr->nkeep is an absolute max + * for the number of connections that could've gone stale while + * the backend remains up. I guess it could go above that in + * some edge case (the database gets restarted?) + * We need 1 try for nkeep = 0 or 1. Hence the dodgy loop logic. + * + * This effect of nkeep needs documenting in TFM. + */ + + tries = svr->nkeep; + do { + rv = apr_reslist_acquire(svr->dbpool, &rec); + if (rv != APR_SUCCESS) { + ap_log_perror(APLOG_MARK, APLOG_ERR, rv, pool, + "Failed to acquire DBD connection from pool!"); + break; + } + rv = apr_dbd_check_conn(arec->driver, pool, arec->handle); + /* mysql wants a second mysql_ping to reopen the connection */ + if (rv == APR_EGENERAL) { + rv = apr_dbd_check_conn(arec->driver, pool, arec->handle); + } + if ((rv == APR_SUCCESS) || (rv == APR_ENOTIMPL)) { + rv = dbd_prepared_init(pool, svr, rec); + break; + } errmsg = apr_dbd_error(arec->driver, arec->handle, rv); if (!errmsg) { errmsg = "(unknown)"; @@ -460,9 +478,9 @@ ap_log_perror(APLOG_MARK, APLOG_ERR, rv, pool, "DBD[%s] Error: %s", svr->name, errmsg ); apr_reslist_invalidate(svr->dbpool, rec); - return NULL; - } - return arec; + } while (--tries > 0); + + return ((rv == APR_SUCCESS) || (rv == APR_ENOTIMPL)) ? arec : NULL; } #else DBD_DECLARE_NONSTD(ap_dbd_t*) ap_dbd_open(apr_pool_t *pool, server_rec *s) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org