comparison src/core/ngx_palloc.c @ 356:b743d290eb3b NGINX_0_6_22

nginx 0.6.22 *) Change: now all ngx_http_perl_module methods return values copied to perl's allocated memory. *) Bugfix: if nginx was built with ngx_http_perl_module, the perl before 5.8.6 was used, and perl supported threads, then during reconfiguration the master process aborted; bug appeared in 0.5.9. Thanks to Boris Zhmurov. *) Bugfix: the ngx_http_perl_module methods may get invalid values of the regex captures. *) Bugfix: a segmentation fault occurred in worker process, if the $r->has_request_body() method was called for a request whose small request body was already received. *) Bugfix: large_client_header_buffers did not freed before going to keep-alive state. Thanks to Olexander Shtepa. *) Bugfix: the last address was missed in the $upstream_addr variable; bug appeared in 0.6.18. *) Bugfix: the "fastcgi_catch_stderr" directive did return error code; now it returns 502 code, that can be rerouted to a next server using the "fastcgi_next_upstream invalid_header" directive. *) Bugfix: a segmentation fault occurred in master process if the "fastcgi_catch_stderr" directive was used; bug appeared in 0.6.10. Thanks to Manlio Perillo.
author Igor Sysoev <http://sysoev.ru>
date Wed, 19 Dec 2007 00:00:00 +0300
parents d16d691432c9
children bc21d9cd9c54
comparison
equal deleted inserted replaced
355:3ac45897a61c 356:b743d290eb3b
38 ngx_pool_large_t *l; 38 ngx_pool_large_t *l;
39 ngx_pool_cleanup_t *c; 39 ngx_pool_cleanup_t *c;
40 40
41 for (c = pool->cleanup; c; c = c->next) { 41 for (c = pool->cleanup; c; c = c->next) {
42 if (c->handler) { 42 if (c->handler) {
43 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0,
44 "run cleanup: %p", c);
43 c->handler(c->data); 45 c->handler(c->data);
44 } 46 }
45 } 47 }
46 48
47 for (l = pool->large; l; l = l->next) { 49 for (l = pool->large; l; l = l->next) {
243 void 245 void
244 ngx_pool_cleanup_file(void *data) 246 ngx_pool_cleanup_file(void *data)
245 { 247 {
246 ngx_pool_cleanup_file_t *c = data; 248 ngx_pool_cleanup_file_t *c = data;
247 249
248 ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, c->log, 0, "run cleanup: %p, fd:%d", 250 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, c->log, 0, "file cleanup: fd:%d",
249 c, c->fd); 251 c->fd);
250 252
251 if (ngx_close_file(c->fd) == NGX_FILE_ERROR) { 253 if (ngx_close_file(c->fd) == NGX_FILE_ERROR) {
252 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno, 254 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno,
253 ngx_close_file_n " \"%s\" failed", c->name); 255 ngx_close_file_n " \"%s\" failed", c->name);
254 } 256 }
260 { 262 {
261 ngx_pool_cleanup_file_t *c = data; 263 ngx_pool_cleanup_file_t *c = data;
262 264
263 ngx_err_t err; 265 ngx_err_t err;
264 266
265 ngx_log_debug3(NGX_LOG_DEBUG_ALLOC, c->log, 0, "run cleanup: %p, fd:%d %s", 267 ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, c->log, 0, "file cleanup: fd:%d %s",
266 c, c->fd, c->name); 268 c->fd, c->name);
267 269
268 if (ngx_delete_file(c->name) == NGX_FILE_ERROR) { 270 if (ngx_delete_file(c->name) == NGX_FILE_ERROR) {
269 err = ngx_errno; 271 err = ngx_errno;
270 272
271 if (err != NGX_ENOENT) { 273 if (err != NGX_ENOENT) {