Re: Неправильные (огромные) значения $request time для FastCGI-запросов
Maxim Dounin
mdounin at mdounin.ru
Mon Sep 2 01:16:01 UTC 2013
Hello!
On Sat, Aug 31, 2013 at 04:50:28PM -0400, sofiamay wrote:
> А что, за год баг так и не исправили? Разрабы даже не удосужились здесь
> отписаться? Баг хотябы в багтрекере висит?
> Подтверждаю, у меня тоже $request_time выдаёт бред:
>
> 240648971536.2381542
> 240648971536.2381542
> 240648971536.2381542
> 240648971536.2381542
> 240648971536.2381542
>
> Одно и то же для многих запросов подряд, потом опять на другой бред меняет!
> Когда это исправят? Зачем в Nginx сделана переменная $request_time если она
> показывает всякий бред, мне думается её нужно убрать, а через несколько лет,
> когда разрабы соизволят исправить баг, вернуть. Пока же от неё больше вреда
> чем пользы.
>
> P.S. Использую Windows и PHP как FastCGI.
Я даже и не знаю, что вам сказать. Привыкайте - это open source.
Тут вам никто ничего не должен, и править вылезающие у вас баги -
вам. Надеяться, что кто-то придёт, и за вас исправит, тем более
на Windows - по меньшей мере наивно.
Впрочем, патч:
diff -r 683283f8b5fd src/http/modules/ngx_http_log_module.c
--- a/src/http/modules/ngx_http_log_module.c Thu Aug 29 20:39:13 2013 +0400
+++ b/src/http/modules/ngx_http_log_module.c Mon Sep 02 04:38:34 2013 +0400
@@ -780,7 +780,7 @@ ngx_http_log_request_time(ngx_http_reque
((tp->sec - r->start_sec) * 1000 + (tp->msec - r->start_msec));
ms = ngx_max(ms, 0);
- return ngx_sprintf(buf, "%T.%03M", ms / 1000, ms % 1000);
+ return ngx_sprintf(buf, "%T.%03M", (time_t) ms / 1000, ms % 1000);
}
diff -r 683283f8b5fd src/http/ngx_http_variables.c
--- a/src/http/ngx_http_variables.c Thu Aug 29 20:39:13 2013 +0400
+++ b/src/http/ngx_http_variables.c Mon Sep 02 04:38:34 2013 +0400
@@ -1992,7 +1992,7 @@ ngx_http_variable_request_time(ngx_http_
((tp->sec - r->start_sec) * 1000 + (tp->msec - r->start_msec));
ms = ngx_max(ms, 0);
- v->len = ngx_sprintf(p, "%T.%03M", ms / 1000, ms % 1000) - p;
+ v->len = ngx_sprintf(p, "%T.%03M", (time_t) ms / 1000, ms % 1000) - p;
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru