Welcome! Log In Create A New Profile

Advanced

Re[2]: http_push_module

January 27, 2010 04:36AM
> Господа, тут такая оказия приключилась:
>
> static void ngx_http_push_send_request(ngx_http_request_t *r,
> ngx_http_variable_value_t *url_variable) {
> if (url_variable != NULL && url_variable->not_found != 1 &&
> url_variable->len != 0) {
> ngx_str_t *url;
> ngx_int_t len = url_variable->len;
> if ((url = ngx_palloc(ngx_http_push_pool, sizeof(*url) + len)) !=
> NULL) {
> url->len = len;
> ngx_memcpy(url->data, url_variable->data, len);
>
> ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, "переход на
> %s", (char *) url->data);
> } else {
> ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "push module:
> unable to allocate memory for $subscribe_url or $unsubscribe_url string");
> }
> ngx_pfree(ngx_http_push_pool, url);
> }
> }
>
> Падает это всё дело на ngx_memcpy(url->data, url_variable->data, len); с
> worker process exited on signal 11 и я понять не могу, почему. Может,
> кто-нибудь подскажет?

[quote]
On POSIX-compliant platforms, SIGSEGV is the signal sent to a process when it makes an invalid memory reference, or segmentation fault. The symbolic constant for SIGSEGV is defined in the header file signal.h. Symbolic signal names are used because signal numbers can vary across platforms; in practice it is usually signal #11.[1]
[/quote]

1) включаешь опцию --debug
2) запускаешь в конфигурации
worker_process 1;
master_process off;
daemon_off;
3) запускаешь dbg nginx
и ловишь segmentation fault далее backtrace определяешь, где валится

сделай лог: ngx_log_error( NGX_LOG_DEBUG, r->connection->log, "url->data =%d url_variable->data=%d , len\n" ,url->data, url_variable->data, len); должно помочь
если валится на этом логе, значить либо url=NULL либо url_variable = NULL,
по этому я делаю так:
if ( url )
ngx_log_error( ... выводим данные)
else
ngx_log_error( ... выводим сообщение url=NULL)









_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

http_push_module

pyromaniac January 26, 2010 04:17AM

Re: http_push_module

akalend January 26, 2010 07:04AM

Re: http_push_module

Peter Leonov January 26, 2010 07:40AM

Re: http_push_module

pyromaniac January 26, 2010 12:00PM

Re: http_push_module

pyromaniac January 27, 2010 04:04AM

Re[2]: http_push_module

akalend January 27, 2010 04:36AM

Re: Re[2]: http_push_module

pyromaniac January 27, 2010 05:38AM

Re[4]: http_push_module

akalend January 27, 2010 06:16AM

Re: Re[2]: http_push_module

Maxim Dounin January 27, 2010 07:00AM

Re: Re[2]: http_push_module

pyromaniac January 27, 2010 10:22AM

Re[4]: http_push_module

Pavel V. January 28, 2010 12:50PM

Re: Re[4]: http_push_module

pyromaniac January 28, 2010 01:28PM

Re: Re[4]: http_push_module

pyromaniac January 28, 2010 01:40PM

Re[6]: http_push_module

akalend January 28, 2010 05:46PM

Re: Re[6]: http_push_module

Sergey Shepelev January 28, 2010 06:04PM

Re[8]: http_push_module

akalend January 29, 2010 02:46AM

Re: Re[8]: http_push_module

pyromaniac January 29, 2010 03:08AM

Re: Re[8]: http_push_module

pyromaniac February 01, 2010 01:12PM

Re: Re[4]: http_push_module

Peter Leonov January 29, 2010 12:14AM

Re: Re[4]: http_push_module

pyromaniac January 29, 2010 01:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 322
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready