author | Petr Sumbera <petr.sumbera@oracle.com> |
Thu, 14 Aug 2014 23:47:06 -0700 | |
changeset 2049 | e2939e765e30 |
permissions | -rw-r--r-- |
2049
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
Patch origin: upstream |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
Patch status: will be part of next version |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
http://svn.apache.org/viewvc?view=revision&revision=1610515 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
--- include/ap_mmn.h 2014/07/14 20:23:27 1610514 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
+++ include/ap_mmn.h 2014/07/14 20:34:32 1610515 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
@@ -151,6 +151,7 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
* 20051115.31 (2.2.23) Add forcerecovery to proxy_balancer_shared struct |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
* 20051115.32 (2.2.24) Add ap_get_exec_line |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
* 20051115.33 (2.2.24) Add ap_pregsub_ex() |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
+ * 20051115.34 (2.2.28) Add ap_copy_scoreboard_worker() |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
*/ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
#define MODULE_MAGIC_COOKIE 0x41503232UL /* "AP22" */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
@@ -158,7 +159,7 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
#ifndef MODULE_MAGIC_NUMBER_MAJOR |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
#define MODULE_MAGIC_NUMBER_MAJOR 20051115 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
#endif |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
-#define MODULE_MAGIC_NUMBER_MINOR 33 /* 0...n */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
+#define MODULE_MAGIC_NUMBER_MINOR 34 /* 0...n */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
/** |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
--- include/scoreboard.h 2014/07/14 20:23:27 1610514 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
+++ include/scoreboard.h 2014/07/14 20:34:32 1610515 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
@@ -189,7 +189,24 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
int status, request_rec *r); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
void ap_time_process_request(ap_sb_handle_t *sbh, int status); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
+/** Return a pointer to the worker_score for a given child, thread pair. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
+ * @param child_num The child number. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
+ * @param thread_num The thread number. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
+ * @return A pointer to the worker_score structure. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
+ * @deprecated This function is deprecated, use ap_copy_scoreboard_worker instead. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
+ */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
AP_DECLARE(worker_score *) ap_get_scoreboard_worker(int x, int y); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
+ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
+/** Copy the contents of a worker's scoreboard entry. The contents of |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
+ * the worker_score structure are copied verbatim into the dest |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
+ * structure. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
+ * @param dest Output parameter. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
+ * @param child_num The child number. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
+ * @param thread_num The thread number. |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
+ */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
+AP_DECLARE(void) ap_copy_scoreboard_worker(worker_score *dest, |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
+ int child_num, int thread_num); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
+ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
AP_DECLARE(process_score *) ap_get_scoreboard_process(int x); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
AP_DECLARE(global_score *) ap_get_scoreboard_global(void); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |
AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int lb_num); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
52 |
--- modules/generators/mod_status.c 2014/07/14 20:23:27 1610514 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
53 |
+++ modules/generators/mod_status.c 2014/07/14 20:34:32 1610515 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
54 |
@@ -241,7 +241,7 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
55 |
#endif |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
56 |
int short_report; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
57 |
int no_table_report; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
58 |
- worker_score *ws_record; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
59 |
+ worker_score *ws_record = apr_palloc(r->pool, sizeof *ws_record); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
60 |
process_score *ps_record; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
61 |
char *stat_buffer; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
62 |
pid_t *pid_buffer, worker_pid; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
63 |
@@ -333,7 +333,7 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
64 |
for (j = 0; j < thread_limit; ++j) { |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
65 |
int indx = (i * thread_limit) + j; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
66 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
67 |
- ws_record = ap_get_scoreboard_worker(i, j); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
68 |
+ ap_copy_scoreboard_worker(ws_record, i, j); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
69 |
res = ws_record->status; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
70 |
stat_buffer[indx] = status_flags[res]; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
71 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
72 |
--- server/scoreboard.c 2014/07/14 20:23:27 1610514 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
73 |
+++ server/scoreboard.c 2014/07/14 20:34:32 1610515 |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
74 |
@@ -510,6 +510,21 @@ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
75 |
return &ap_scoreboard_image->servers[x][y]; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
76 |
} |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
77 |
|
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
78 |
+AP_DECLARE(void) ap_copy_scoreboard_worker(worker_score *dest, |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
79 |
+ int child_num, |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
80 |
+ int thread_num) |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
81 |
+{ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
82 |
+ worker_score *ws = ap_get_scoreboard_worker(child_num, thread_num); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
83 |
+ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
84 |
+ memcpy(dest, ws, sizeof *ws); |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
85 |
+ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
86 |
+ /* For extra safety, NUL-terminate the strings returned, though it |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
87 |
+ * should be true those last bytes are always zero anyway. */ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
88 |
+ dest->client[sizeof(dest->client) - 1] = '\0'; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
89 |
+ dest->request[sizeof(dest->request) - 1] = '\0'; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
90 |
+ dest->vhost[sizeof(dest->vhost) - 1] = '\0'; |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
91 |
+} |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
92 |
+ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
93 |
AP_DECLARE(process_score *) ap_get_scoreboard_process(int x) |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
94 |
{ |
e2939e765e30
19262807 problem in UTILITY/APACHE
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
95 |
if ((x < 0) || (server_limit < x)) { |