From: Jim Jagielski Date: Fri, 10 Jul 2009 12:20:45 +0000 (+0000) Subject: remove locking for writing in mod_rewrite X-Git-Tag: 2.2.12~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5e044b391067bd330ace2b49899da05423faa37;p=thirdparty%2Fapache%2Fhttpd.git remove locking for writing in mod_rewrite PR 46942 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@792910 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 7a1ddbc53c7..04c19eec979 100644 --- a/CHANGES +++ b/CHANGES @@ -27,6 +27,9 @@ Changes with Apache 2.2.12 different security issues which may affect particular configurations and third-party modules. + *) mod_rewrite: Remove locking for writing to the rewritelog. + PR 46942 + *) mod_alias: Ensure Redirect emits HTTP-compliant URLs. PR 44020 diff --git a/STATUS b/STATUS index f82731744ae..6141d32f78c 100644 --- a/STATUS +++ b/STATUS @@ -101,12 +101,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: +1: niq, rpluem, jim +0; [Would be +1 once ProxyRemote behavior is verified/fixed] - * mod_rewrite: Remove locking for writing to the rewritelog. - PR 46942 - trunk patch: http://svn.apache.org/viewvc?view=rev&revision=783734 - 2.2.x patch: http://people.apache.org/~niq/patches/46942.patch - +1: niq, rpluem, jim - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c index af7fed74cb7..b9c8a51ff88 100644 --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -374,10 +374,6 @@ static int rewrite_rand_init_done = 0; static const char *lockname; static apr_global_mutex_t *rewrite_mapr_lock_acquire = NULL; -#ifndef REWRITELOG_DISABLED -static apr_global_mutex_t *rewrite_log_lock = NULL; -#endif - /* Optional functions imported from mod_ssl when loaded: */ static APR_OPTIONAL_FN_TYPE(ssl_var_lookup) *rewrite_ssl_lookup = NULL; static APR_OPTIONAL_FN_TYPE(ssl_is_https) *rewrite_is_https = NULL; @@ -474,7 +470,6 @@ static void do_rewritelog(request_rec *r, int level, char *perdir, const char *rhost, *rname; apr_size_t nbytes; int redir; - apr_status_t rv; request_rec *req; va_list ap; @@ -514,23 +509,9 @@ static void do_rewritelog(request_rec *r, int level, char *perdir, perdir ? "] ": "", text); - rv = apr_global_mutex_lock(rewrite_log_lock); - if (rv != APR_SUCCESS) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, - "apr_global_mutex_lock(rewrite_log_lock) failed"); - /* XXX: Maybe this should be fatal? */ - } - nbytes = strlen(logline); apr_file_write(conf->rewritelogfp, logline, &nbytes); - rv = apr_global_mutex_unlock(rewrite_log_lock); - if (rv != APR_SUCCESS) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, - "apr_global_mutex_unlock(rewrite_log_lock) failed"); - /* XXX: Maybe this should be fatal? */ - } - return; } #endif /* !REWRITELOG_DISABLED */ @@ -4164,26 +4145,6 @@ static int post_config(apr_pool_t *p, /* check if proxy module is available */ proxy_available = (ap_find_linked_module("mod_proxy.c") != NULL); -#ifndef REWRITELOG_DISABLED - /* create the rewriting lockfiles in the parent */ - if ((rv = apr_global_mutex_create(&rewrite_log_lock, NULL, - APR_LOCK_DEFAULT, p)) != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, - "mod_rewrite: could not create rewrite_log_lock"); - return HTTP_INTERNAL_SERVER_ERROR; - } - -#ifdef AP_NEED_SET_MUTEX_PERMS - rv = unixd_set_global_mutex_perms(rewrite_log_lock); - if (rv != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, - "mod_rewrite: Could not set permissions on " - "rewrite_log_lock; check User and Group directives"); - return HTTP_INTERNAL_SERVER_ERROR; - } -#endif /* perms */ -#endif /* rewritelog */ - rv = rewritelock_create(s, p); if (rv != APR_SUCCESS) { return HTTP_INTERNAL_SERVER_ERROR; @@ -4230,14 +4191,6 @@ static void init_child(apr_pool_t *p, server_rec *s) } } -#ifndef REWRITELOG_DISABLED - rv = apr_global_mutex_child_init(&rewrite_log_lock, NULL, p); - if (rv != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, - "mod_rewrite: could not init rewrite log lock in child"); - } -#endif - /* create the lookup cache */ if (!init_cache(p)) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s,