You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2012/03/19 06:52:51 UTC
svn commit: r1302277 - in /tomcat/jk/trunk/native: common/jk_lb_worker.c
iis/jk_isapi_plugin.c
Author: mturk
Date: Mon Mar 19 05:52:50 2012
New Revision: 1302277
URL: http://svn.apache.org/viewvc?rev=1302277&view=rev
Log:
Guard init_jk both by critial section and process mutex
Modified:
tomcat/jk/trunk/native/common/jk_lb_worker.c
tomcat/jk/trunk/native/iis/jk_isapi_plugin.c
Modified: tomcat/jk/trunk/native/common/jk_lb_worker.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_lb_worker.c?rev=1302277&r1=1302276&r2=1302277&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_lb_worker.c (original)
+++ tomcat/jk/trunk/native/common/jk_lb_worker.c Mon Mar 19 05:52:50 2012
@@ -1170,7 +1170,7 @@ static int JK_METHOD service(jk_endpoint
if (jk_b_set_buffer_size(s->reco_buf, p->worker->max_packet_size)) {
*is_error = JK_HTTP_SERVER_ERROR;
jk_log(l, JK_LOG_ERROR,
- "Failed allocating AJP message buffer");
+ "Failed allocating AJP message buffer of %d bytes.", p->worker->max_packet_size);
JK_TRACE_EXIT(l);
return JK_SERVER_ERROR;
}
Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?rev=1302277&r1=1302276&r2=1302277&view=diff
==============================================================================
--- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Mon Mar 19 05:52:50 2012
@@ -495,7 +495,7 @@ static char worker_file[MAX_PATH * 2];
static char worker_mount_file[MAX_PATH * 2] = {0};
static int worker_mount_reload = JK_URIMAP_DEF_RELOAD;
static char rewrite_rule_file[MAX_PATH * 2] = {0};
-static size_t shm_config_size = 0;
+static size_t shm_config_size = -1;
static int strip_session = 0;
static int use_auth_notification_flags = 1;
static int chunked_encoding_enabled = JK_FALSE;
@@ -2155,6 +2155,7 @@ DWORD WINAPI HttpFilterProc(PHTTP_FILTER
DWORD dwNotificationType, LPVOID pvNotification)
{
/* Initialise jk */
+ EnterCriticalSection(&log_cs);
if (is_inited && !is_mapread) {
char serverName[MAX_SERVERNAME] = "";
char instanceId[MAX_INSTANCEID] = "";
@@ -2179,6 +2180,7 @@ DWORD WINAPI HttpFilterProc(PHTTP_FILTER
if (!is_mapread)
is_inited = JK_FALSE;
}
+ LeaveCriticalSection(&log_cs);
if (!is_inited) {
/* In case the initialization failed
* return error. This will make entire IIS
@@ -2235,6 +2237,7 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI
JK_TRACE_ENTER(logger);
/* Initialise jk */
+ EnterCriticalSection(&log_cs);
if (is_inited && !is_mapread) {
char serverName[MAX_SERVERNAME] = "";
char instanceId[MAX_INSTANCEID] = "";
@@ -2260,6 +2263,7 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI
if (!is_mapread)
is_inited = JK_FALSE;
}
+ LeaveCriticalSection(&log_cs);
if (!is_inited) {
jk_log(logger, JK_LOG_ERROR, "not initialized");
@@ -2798,16 +2802,17 @@ static int init_jk(char *serverName)
/*
* Create named shared memory for each server
*/
- if (shm_config_size == 0) {
+ if (shm_config_size == -1) {
shm_config_size = jk_shm_calculate_size(workers_map, logger);
}
- else {
+ else if (shm_config_size > 0) {
jk_log(logger, JK_LOG_WARNING,
"The optimal shared memory size can now be determined automatically.");
jk_log(logger, JK_LOG_WARNING,
"You can remove the shm_size attribute if you want to use the optimal size.");
}
- if ((rv = jk_shm_open(shm_name, shm_config_size, logger)) != 0) {
+ if ((shm_config_size > 0) &&
+ (rv = jk_shm_open(shm_name, shm_config_size, logger)) != 0) {
jk_log(logger, JK_LOG_ERROR,
"Initializing shm:%s errno=%d. Load balancing workers will not function properly",
jk_shm_name(), rv);
@@ -2841,9 +2846,12 @@ static int init_jk(char *serverName)
if (wc_open(workers_map, &worker_env, logger)) {
rc = JK_TRUE;
+ uri_worker_map_ext(uw_map, logger);
+ uri_worker_map_switch(uw_map, logger);
+ }
+ else {
+ jk_shm_close();
}
- uri_worker_map_ext(uw_map, logger);
- uri_worker_map_switch(uw_map, logger);
}
else {
jk_log(logger, JK_LOG_EMERG,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org