Hello community, here is the log from the commit of package nginx for openSUSE:Factory checked in at 2013-04-23 17:22:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nginx (Old) and /work/SRC/openSUSE:Factory/.nginx.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "nginx", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/nginx/nginx.changes 2013-04-14 10:35:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.nginx.new/nginx.changes 2013-04-23 17:22:52.000000000 +0200 @@ -1,0 +2,12 @@ +Tue Apr 16 12:04:35 UTC 2013 - suse@ammler.ch + +- update to 1.2.8 + *) Bugfix: new sessions were not always stored if the "ssl_session_cache + shared" directive was used and there was no free space in shared + memory. + *) Bugfix: responses might hang if subrequests were used and a DNS error + happened during subrequest processing. + *) Bugfix: in the ngx_http_mp4_module. + *) Bugfix: in backend usage accounting. + +------------------------------------------------------------------- Old: ---- nginx-1.2.7.tar.gz New: ---- nginx-1.2.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nginx.spec ++++++ --- /var/tmp/diff_new_pack.ct4bh3/_old 2013-04-23 17:22:58.000000000 +0200 +++ /var/tmp/diff_new_pack.ct4bh3/_new 2013-04-23 17:22:58.000000000 +0200 @@ -17,7 +17,7 @@ Name: nginx -Version: 1.2.7 +Version: 1.2.8 Release: 0 # %define pkg_name nginx ++++++ nginx-1.2.7.tar.gz -> nginx-1.2.8.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/CHANGES new/nginx-1.2.8/CHANGES --- old/nginx-1.2.7/CHANGES 2013-02-12 14:41:25.000000000 +0100 +++ new/nginx-1.2.8/CHANGES 2013-04-02 14:35:19.000000000 +0200 @@ -1,4 +1,21 @@ +Changes with nginx 1.2.8 02 Apr 2013 + + *) Bugfix: new sessions were not always stored if the "ssl_session_cache + shared" directive was used and there was no free space in shared + memory. + Thanks to Piotr Sikora. + + *) Bugfix: responses might hang if subrequests were used and a DNS error + happened during subrequest processing. + Thanks to Lanshun Zhou. + + *) Bugfix: in the ngx_http_mp4_module. + Thanks to Gernot Vormayr. + + *) Bugfix: in backend usage accounting. + + Changes with nginx 1.2.7 12 Feb 2013 *) Change: now if the "include" directive with mask is used on Unix diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/CHANGES.ru new/nginx-1.2.8/CHANGES.ru --- old/nginx-1.2.7/CHANGES.ru 2013-02-12 14:41:23.000000000 +0100 +++ new/nginx-1.2.8/CHANGES.ru 2013-04-02 14:35:17.000000000 +0200 @@ -1,4 +1,21 @@ +Изменения в nginx 1.2.8 02.04.2013 + + *) Исправление: при использовании директивы "ssl_session_cache shared" + новые сессии могли не сохраняться, если заканчивалось место в + разделяемой памяти. + Спасибо Piotr Sikora. + + *) Исправление: ответы могли зависать, если использовались подзапросы и + при обработке подзапроса происходила DNS-ошибка. + Спасибо Lanshun Zhou. + + *) Исправление: в модуле ngx_http_mp4_module. + Спасибо Gernot Vormayr. + + *) Исправление: в процедуре учёта использования бэкендов. + + Изменения в nginx 1.2.7 12.02.2013 *) Изменение: теперь при использовании директивы include с маской на diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/auto/lib/perl/make new/nginx-1.2.8/auto/lib/perl/make --- old/nginx-1.2.7/auto/lib/perl/make 2013-02-10 03:58:03.000000000 +0100 +++ new/nginx-1.2.8/auto/lib/perl/make 2013-03-29 18:13:45.000000000 +0100 @@ -6,11 +6,12 @@ cat << END >> $NGX_MAKEFILE $NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so: \ + $(CORE_DEPS) $(HTTP_DEPS) \ src/http/modules/perl/nginx.pm \ src/http/modules/perl/nginx.xs \ src/http/modules/perl/ngx_http_perl_module.h \ $NGX_OBJS/src/http/modules/perl/Makefile - cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/ + cp src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/ cd $NGX_OBJS/src/http/modules/perl && $(MAKE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/core/nginx.c new/nginx-1.2.8/src/core/nginx.c --- old/nginx-1.2.7/src/core/nginx.c 2012-11-13 12:00:37.000000000 +0100 +++ new/nginx-1.2.8/src/core/nginx.c 2013-03-29 19:18:42.000000000 +0100 @@ -594,6 +594,10 @@ var = ngx_alloc(sizeof(NGINX_VAR) + cycle->listening.nelts * (NGX_INT32_LEN + 1) + 2, cycle->log); + if (var == NULL) { + ngx_free(env); + return NGX_INVALID_PID; + } p = ngx_cpymem(var, NGINX_VAR "=", sizeof(NGINX_VAR)); @@ -633,7 +637,7 @@ ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); - if (ngx_rename_file(ccf->pid.data, ccf->oldpid.data) != NGX_OK) { + if (ngx_rename_file(ccf->pid.data, ccf->oldpid.data) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, ngx_rename_file_n " %s to %s failed " "before executing new binary process "%s"", @@ -648,7 +652,9 @@ pid = ngx_execute(cycle, &ctx); if (pid == NGX_INVALID_PID) { - if (ngx_rename_file(ccf->oldpid.data, ccf->pid.data) != NGX_OK) { + if (ngx_rename_file(ccf->oldpid.data, ccf->pid.data) + == NGX_FILE_ERROR) + { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, ngx_rename_file_n " %s back to %s failed after " "an attempt to execute new binary process "%s"", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/core/nginx.h new/nginx-1.2.8/src/core/nginx.h --- old/nginx-1.2.7/src/core/nginx.h 2013-02-09 22:07:06.000000000 +0100 +++ new/nginx-1.2.8/src/core/nginx.h 2013-03-29 16:29:29.000000000 +0100 @@ -9,8 +9,8 @@ #define _NGINX_H_INCLUDED_ -#define nginx_version 1002007 -#define NGINX_VERSION "1.2.7" +#define nginx_version 1002008 +#define NGINX_VERSION "1.2.8" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "NGINX" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/core/ngx_conf_file.c new/nginx-1.2.8/src/core/ngx_conf_file.c --- old/nginx-1.2.7/src/core/ngx_conf_file.c 2013-02-11 15:34:00.000000000 +0100 +++ new/nginx-1.2.8/src/core/ngx_conf_file.c 2013-03-29 19:18:42.000000000 +0100 @@ -133,7 +133,7 @@ cf->conf_file = &conf_file; - if (ngx_fd_info(fd, &cf->conf_file->file.info) == -1) { + if (ngx_fd_info(fd, &cf->conf_file->file.info) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_EMERG, cf->log, ngx_errno, ngx_fd_info_n " "%s" failed", filename->data); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/core/ngx_connection.c new/nginx-1.2.8/src/core/ngx_connection.c --- old/nginx-1.2.7/src/core/ngx_connection.c 2012-12-10 18:46:51.000000000 +0100 +++ new/nginx-1.2.8/src/core/ngx_connection.c 2013-03-29 19:18:42.000000000 +0100 @@ -412,7 +412,7 @@ } if (ngx_test_config) { - if (ngx_delete_file(name) == -1) { + if (ngx_delete_file(name) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, ngx_delete_file_n " %s failed", name); } @@ -739,7 +739,7 @@ { u_char *name = ls[i].addr_text.data + sizeof("unix:") - 1; - if (ngx_delete_file(name) == -1) { + if (ngx_delete_file(name) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_socket_errno, ngx_delete_file_n " %s failed", name); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/core/ngx_cycle.c new/nginx-1.2.8/src/core/ngx_cycle.c --- old/nginx-1.2.7/src/core/ngx_cycle.c 2013-02-11 15:34:00.000000000 +0100 +++ new/nginx-1.2.8/src/core/ngx_cycle.c 2013-03-29 19:18:42.000000000 +0100 @@ -679,7 +679,7 @@ ngx_log_error(NGX_LOG_WARN, cycle->log, 0, "deleting socket %s", name); - if (ngx_delete_file(name) == -1) { + if (ngx_delete_file(name) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_socket_errno, ngx_delete_file_n " %s failed", name); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/event/ngx_event_openssl.c new/nginx-1.2.8/src/event/ngx_event_openssl.c --- old/nginx-1.2.7/src/event/ngx_event_openssl.c 2013-02-11 16:12:06.000000000 +0100 +++ new/nginx-1.2.8/src/event/ngx_event_openssl.c 2013-03-29 18:17:45.000000000 +0100 @@ -1716,8 +1716,18 @@ } sess_id = ngx_slab_alloc_locked(shpool, sizeof(ngx_ssl_sess_id_t)); + if (sess_id == NULL) { - goto failed; + + /* drop the oldest non-expired session and try once more */ + + ngx_ssl_expire_sessions(cache, shpool, 0); + + sess_id = ngx_slab_alloc_locked(shpool, sizeof(ngx_ssl_sess_id_t)); + + if (sess_id == NULL) { + goto failed; + } } #if (NGX_PTR_SIZE == 8) @@ -1727,8 +1737,18 @@ #else id = ngx_slab_alloc_locked(shpool, sess->session_id_length); + if (id == NULL) { - goto failed; + + /* drop the oldest non-expired session and try once more */ + + ngx_ssl_expire_sessions(cache, shpool, 0); + + id = ngx_slab_alloc_locked(shpool, sess->session_id_length); + + if (id == NULL) { + goto failed; + } } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_autoindex_module.c new/nginx-1.2.8/src/http/modules/ngx_http_autoindex_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_autoindex_module.c 2012-02-28 12:31:05.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_autoindex_module.c 2013-03-29 18:11:09.000000000 +0100 @@ -489,8 +489,11 @@ } b->last = ngx_cpymem(b->last, "</a>", sizeof("</a>") - 1); - ngx_memset(b->last, ' ', NGX_HTTP_AUTOINDEX_NAME_LEN - len); - b->last += NGX_HTTP_AUTOINDEX_NAME_LEN - len; + + if (NGX_HTTP_AUTOINDEX_NAME_LEN - len > 0) { + ngx_memset(b->last, ' ', NGX_HTTP_AUTOINDEX_NAME_LEN - len); + b->last += NGX_HTTP_AUTOINDEX_NAME_LEN - len; + } } *b->last++ = ' '; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_index_module.c new/nginx-1.2.8/src/http/modules/ngx_http_index_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_index_module.c 2012-02-28 12:31:05.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_index_module.c 2013-03-29 18:53:47.000000000 +0100 @@ -85,12 +85,12 @@ /* * Try to open/test the first index file before the test of directory - * existence because valid requests should be much more than invalid ones. - * If the file open()/stat() would fail, then the directory stat() should - * be more quickly because some data is already cached in the kernel. + * existence because valid requests should prevail over invalid ones. + * If open()/stat() of a file will fail then stat() of a directory + * should be faster because kernel may have already cached some data. * Besides, Win32 may return ERROR_PATH_NOT_FOUND (NGX_ENOTDIR) at once. - * Unix has ENOTDIR error, however, it's less helpful than Win32's one: - * it only indicates that path contains an usual file in place of directory. + * Unix has ENOTDIR error; however, it's less helpful than Win32's one: + * it only indicates that path points to a regular file, not a directory. */ static ngx_int_t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_mp4_module.c new/nginx-1.2.8/src/http/modules/ngx_http_mp4_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_mp4_module.c 2012-07-02 18:56:53.000000000 +0200 +++ new/nginx-1.2.8/src/http/modules/ngx_http_mp4_module.c 2013-03-29 18:20:59.000000000 +0100 @@ -750,6 +750,13 @@ *prev = &mp4->mdat_atom; + if (start_offset > mp4->mdat_data.buf->file_last) { + ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0, + "start time is out mp4 mdat atom in "%s"", + mp4->file.name.data); + return NGX_ERROR; + } + adjustment = mp4->ftyp_size + mp4->moov_size + ngx_http_mp4_update_mdat_atom(mp4, start_offset) - start_offset; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_split_clients_module.c new/nginx-1.2.8/src/http/modules/ngx_http_split_clients_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_split_clients_module.c 2013-02-10 04:08:42.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_split_clients_module.c 2013-03-29 18:59:41.000000000 +0100 @@ -218,7 +218,7 @@ part->percent = 0; } else { - if (value[0].data[value[0].len - 1] != '%') { + if (value[0].len == 0 || value[0].data[value[0].len - 1] != '%') { goto invalid; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_ssl_module.c new/nginx-1.2.8/src/http/modules/ngx_http_ssl_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_ssl_module.c 2012-11-13 11:42:16.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_ssl_module.c 2013-03-29 18:15:34.000000000 +0100 @@ -593,7 +593,6 @@ for (j = sizeof("shared:") - 1; j < value[i].len; j++) { if (value[i].data[j] == ':') { - value[i].data[j] = '\0'; break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_upstream_keepalive_module.c new/nginx-1.2.8/src/http/modules/ngx_http_upstream_keepalive_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_upstream_keepalive_module.c 2013-02-11 15:58:25.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_upstream_keepalive_module.c 2013-03-29 19:16:27.000000000 +0100 @@ -37,8 +37,6 @@ ngx_event_save_peer_session_pt original_save_session; #endif - ngx_uint_t failed; /* unsigned:1 */ - } ngx_http_upstream_keepalive_peer_data_t; @@ -220,8 +218,6 @@ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, pc->log, 0, "get keepalive peer"); - kp->failed = 0; - /* ask balancer */ rc = kp->original_get_peer(pc, kp->data); @@ -282,18 +278,12 @@ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, pc->log, 0, "free keepalive peer"); - /* remember failed state - peer.free() may be called more than once */ - - if (state & NGX_PEER_FAILED) { - kp->failed = 1; - } - /* cache valid connections */ u = kp->upstream; c = pc->connection; - if (kp->failed + if (state & NGX_PEER_FAILED || c == NULL || c->read->eof || c->read->error diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/ngx_http_upstream_least_conn_module.c new/nginx-1.2.8/src/http/modules/ngx_http_upstream_least_conn_module.c --- old/nginx-1.2.7/src/http/modules/ngx_http_upstream_least_conn_module.c 2013-02-11 15:56:14.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/ngx_http_upstream_least_conn_module.c 2013-03-29 19:16:27.000000000 +0100 @@ -353,10 +353,6 @@ return; } - if (state == 0 && pc->tries == 0) { - return; - } - lcp->conns[lcp->rrp.current]--; lcp->free_rr_peer(pc, &lcp->rrp, state); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/modules/perl/nginx.pm new/nginx-1.2.8/src/http/modules/perl/nginx.pm --- old/nginx-1.2.7/src/http/modules/perl/nginx.pm 2013-02-10 03:58:03.000000000 +0100 +++ new/nginx-1.2.8/src/http/modules/perl/nginx.pm 2013-03-29 16:29:29.000000000 +0100 @@ -50,7 +50,7 @@ HTTP_INSUFFICIENT_STORAGE ); -our $VERSION = '1.2.7'; +our $VERSION = '1.2.8'; require XSLoader; XSLoader::load('nginx', $VERSION); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http.h new/nginx-1.2.8/src/http/ngx_http.h --- old/nginx-1.2.7/src/http/ngx_http.h 2012-01-18 16:07:43.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http.h 2013-03-29 18:23:36.000000000 +0100 @@ -94,7 +94,6 @@ ngx_str_t *args); -ngx_int_t ngx_http_find_server_conf(ngx_http_request_t *r); void ngx_http_update_location_config(ngx_http_request_t *r); void ngx_http_handler(ngx_http_request_t *r); void ngx_http_run_posted_requests(ngx_connection_t *c); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http_file_cache.c new/nginx-1.2.8/src/http/ngx_http_file_cache.c --- old/nginx-1.2.7/src/http/ngx_http_file_cache.c 2012-02-27 23:15:39.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http_file_cache.c 2013-03-29 18:15:34.000000000 +0100 @@ -1674,8 +1674,6 @@ p = (u_char *) ngx_strchr(name.data, ':'); if (p) { - *p = '\0'; - name.len = p - name.data; p++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http_request.c new/nginx-1.2.8/src/http/ngx_http_request.c --- old/nginx-1.2.7/src/http/ngx_http_request.c 2012-11-13 12:21:31.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http_request.c 2013-03-29 18:19:11.000000000 +0100 @@ -2743,6 +2743,7 @@ if (n == NGX_AGAIN) { if (ngx_handle_read_event(rev, 0) != NGX_OK) { ngx_http_close_connection(c); + return; } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http_upstream.c new/nginx-1.2.8/src/http/ngx_http_upstream.c --- old/nginx-1.2.7/src/http/ngx_http_upstream.c 2013-02-11 15:39:49.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http_upstream.c 2013-03-29 19:16:27.000000000 +0100 @@ -865,11 +865,13 @@ static void ngx_http_upstream_resolve_handler(ngx_resolver_ctx_t *ctx) { + ngx_connection_t *c; ngx_http_request_t *r; ngx_http_upstream_t *u; ngx_http_upstream_resolved_t *ur; r = ctx->data; + c = r->connection; u = r->upstream; ur = u->resolved; @@ -881,7 +883,7 @@ ngx_resolver_strerror(ctx->state)); ngx_http_upstream_finalize_request(r, u, NGX_HTTP_BAD_GATEWAY); - return; + goto failed; } ur->naddrs = ctx->naddrs; @@ -906,13 +908,17 @@ if (ngx_http_upstream_create_round_robin_peer(r, ur) != NGX_OK) { ngx_http_upstream_finalize_request(r, u, NGX_HTTP_INTERNAL_SERVER_ERROR); - return; + goto failed; } ngx_resolve_name_done(ctx); ur->ctx = NULL; ngx_http_upstream_connect(r, u); + +failed: + + ngx_http_run_posted_requests(c); } @@ -2840,14 +2846,16 @@ ngx_http_busy_unlock(u->conf->busy_lock, &u->busy_lock); #endif - if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404) { - state = NGX_PEER_NEXT; - } else { - state = NGX_PEER_FAILED; - } + if (u->peer.sockaddr) { + + if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404) { + state = NGX_PEER_NEXT; + } else { + state = NGX_PEER_FAILED; + } - if (ft_type != NGX_HTTP_UPSTREAM_FT_NOLIVE) { u->peer.free(&u->peer, u->peer.data, state); + u->peer.sockaddr = NULL; } if (ft_type == NGX_HTTP_UPSTREAM_FT_TIMEOUT) { @@ -3007,8 +3015,9 @@ u->finalize_request(r, rc); - if (u->peer.free) { + if (u->peer.free && u->peer.sockaddr) { u->peer.free(&u->peer, u->peer.data, 0); + u->peer.sockaddr = NULL; } if (u->peer.connection) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http_upstream_round_robin.c new/nginx-1.2.8/src/http/ngx_http_upstream_round_robin.c --- old/nginx-1.2.7/src/http/ngx_http_upstream_round_robin.c 2013-02-11 15:56:14.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http_upstream_round_robin.c 2013-03-29 19:16:27.000000000 +0100 @@ -584,10 +584,6 @@ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, "free rr peer %ui %ui", pc->tries, state); - if (state == 0 && pc->tries == 0) { - return; - } - /* TODO: NGX_PEER_KEEPALIVE */ if (rrp->peers->single) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/http/ngx_http_variables.h new/nginx-1.2.8/src/http/ngx_http_variables.h --- old/nginx-1.2.7/src/http/ngx_http_variables.h 2012-01-18 16:07:43.000000000 +0100 +++ new/nginx-1.2.8/src/http/ngx_http_variables.h 2013-03-29 18:23:36.000000000 +0100 @@ -57,9 +57,6 @@ ngx_str_t *var, ngx_list_part_t *part, size_t prefix); -#define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL; - - #if (NGX_PCRE) typedef struct { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nginx-1.2.7/src/os/unix/ngx_process_cycle.c new/nginx-1.2.8/src/os/unix/ngx_process_cycle.c --- old/nginx-1.2.7/src/os/unix/ngx_process_cycle.c 2012-12-10 18:46:51.000000000 +0100 +++ new/nginx-1.2.8/src/os/unix/ngx_process_cycle.c 2013-03-29 19:18:42.000000000 +0100 @@ -647,7 +647,7 @@ if (ngx_rename_file((char *) ccf->oldpid.data, (char *) ccf->pid.data) - != NGX_OK) + == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, ngx_rename_file_n " %s back to %s failed " -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org