summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
authorJérôme Loyet <fat@php.net>2011-01-29 11:38:19 +0000
committerJérôme Loyet <fat@php.net>2011-01-29 11:38:19 +0000
commit977d79a7242e434da5409f4498ce4a140eea16dd (patch)
tree621bdfc5af8bd87a7a91ddda0df692e284c39bb3 /sapi
parentf386967b770f772fc3fc0202f6b1bf2dc25b48ab (diff)
downloadphp-git-977d79a7242e434da5409f4498ce4a140eea16dd.tar.gz
- Fixed bug #53434 (php-fpm slowlog now also logs the original request).
Diffstat (limited to 'sapi')
-rw-r--r--sapi/fpm/fpm/fpm_php.c6
-rw-r--r--sapi/fpm/fpm/fpm_php.h1
-rw-r--r--sapi/fpm/fpm/fpm_request.c11
-rw-r--r--sapi/fpm/fpm/fpm_shm_slots.h1
4 files changed, 17 insertions, 2 deletions
diff --git a/sapi/fpm/fpm/fpm_php.c b/sapi/fpm/fpm/fpm_php.c
index eeba71301a..384682b7e2 100644
--- a/sapi/fpm/fpm/fpm_php.c
+++ b/sapi/fpm/fpm/fpm_php.c
@@ -160,6 +160,12 @@ char *fpm_php_script_filename(TSRMLS_D) /* {{{ */
}
/* }}} */
+char *fpm_php_request_uri(TSRMLS_D) /* {{{ */
+{
+ return (char *) SG(request_info).request_uri;
+}
+/* }}} */
+
char *fpm_php_request_method(TSRMLS_D) /* {{{ */
{
return (char *) SG(request_info).request_method;
diff --git a/sapi/fpm/fpm/fpm_php.h b/sapi/fpm/fpm/fpm_php.h
index 81e5332671..891e83bfce 100644
--- a/sapi/fpm/fpm/fpm_php.h
+++ b/sapi/fpm/fpm/fpm_php.h
@@ -35,6 +35,7 @@ struct fpm_worker_pool_s;
int fpm_php_init_child(struct fpm_worker_pool_s *wp);
char *fpm_php_script_filename(TSRMLS_D);
+char *fpm_php_request_uri(TSRMLS_D);
char *fpm_php_request_method(TSRMLS_D);
size_t fpm_php_content_length(TSRMLS_D);
void fpm_php_soft_quit();
diff --git a/sapi/fpm/fpm/fpm_request.c b/sapi/fpm/fpm/fpm_request.c
index 590548e576..9a2f66bcec 100644
--- a/sapi/fpm/fpm/fpm_request.c
+++ b/sapi/fpm/fpm/fpm_request.c
@@ -26,6 +26,7 @@ void fpm_request_accepting() /* {{{ */
slot = fpm_shm_slots_acquire(0, 0);
slot->request_stage = FPM_REQUEST_ACCEPTING;
fpm_clock_get(&slot->tv);
+ memset(slot->request_uri, 0, sizeof(slot->request_uri));
memset(slot->request_method, 0, sizeof(slot->request_method));
slot->content_length = 0;
memset(slot->script_filename, 0, sizeof(slot->script_filename));
@@ -51,6 +52,7 @@ void fpm_request_info() /* {{{ */
{
TSRMLS_FETCH();
struct fpm_shm_slot_s *slot;
+ char *request_uri = fpm_php_request_uri(TSRMLS_C);
char *request_method = fpm_php_request_method(TSRMLS_C);
char *script_filename = fpm_php_script_filename(TSRMLS_C);
@@ -58,6 +60,10 @@ void fpm_request_info() /* {{{ */
slot->request_stage = FPM_REQUEST_INFO;
fpm_clock_get(&slot->tv);
+ if (request_uri) {
+ cpystrn(slot->request_uri, request_uri, sizeof(slot->request_uri));
+ }
+
if (request_method) {
cpystrn(slot->request_method, request_method, sizeof(slot->request_method));
}
@@ -136,8 +142,9 @@ void fpm_request_check_timed_out(struct fpm_child_s *child, struct timeval *now,
fpm_trace_signal(child->pid);
- zlog(ZLOG_WARNING, "[pool %s] child %d, script '%s' executing too slow (%d.%06d sec), logging",
- child->wp->config->name, (int) child->pid, purified_script_filename, (int) tv.tv_sec, (int) tv.tv_usec);
+ zlog(ZLOG_WARNING, "[pool %s] child %d, script '%s' (request: \"%s %s\") executing too slow (%d.%06d sec), logging",
+ child->wp->config->name, (int) child->pid, purified_script_filename, slot_c.request_method, slot_c.request_uri,
+ (int) tv.tv_sec, (int) tv.tv_usec);
}
else
#endif
diff --git a/sapi/fpm/fpm/fpm_shm_slots.h b/sapi/fpm/fpm/fpm_shm_slots.h
index 4596c6fada..d74f176229 100644
--- a/sapi/fpm/fpm/fpm_shm_slots.h
+++ b/sapi/fpm/fpm/fpm_shm_slots.h
@@ -19,6 +19,7 @@ struct fpm_shm_slot_s {
enum fpm_request_stage_e request_stage;
struct timeval accepted;
struct timeval tv;
+ char request_uri[128];
char request_method[16];
size_t content_length; /* used with POST only */
char script_filename[256];