You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by yo...@apache.org on 2004/06/16 16:38:56 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk2.c
yoavs 2004/06/16 07:38:56
Modified: jk/native2/server/apache2 mod_jk2.c
Log:
Bugzilla 26231 done.
Revision Changes Path
1.83 +20 -5 jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk2.c
Index: mod_jk2.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk2.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- mod_jk2.c 31 Mar 2004 14:22:04 -0000 1.82
+++ mod_jk2.c 16 Jun 2004 14:38:56 -0000 1.83
@@ -628,10 +628,25 @@
proc.pid);
}
else {
- env->l->jkLog(env, env->l, JK_LOG_ERROR,
- "jk2_init() Can't find child %d in none of the %d scoreboard slots\n",
- proc.pid, workerEnv->maxDaemons);
- workerEnv->childId = -2;
+ /*
+ * try again several times, there's a
+ * race condition here where jk2_child_init gets
+ * called before make_child completes.
+ */
+ int counter = 0;
+ while (counter++ < 50 && workerEnv->childId == -1) {
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "jk2_child_init() child %d not in scoreboard yet, spin %d\n",
+ proc.pid, counter);
+ usleep(10);
+ workerEnv->childId = find_child_by_pid(&proc);
+ }
+ if (workerEnv->childId == -1) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "jk2_init() Can't find child %d in any of the %d scoreboard slots\n",
+ proc.pid, max_daemons_limit);
+ workerEnv->childId = -2;
+ }
}
}
else {
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org