Author: mturk Date: Sun May 27 19:05:26 2012 New Revision: 1343079 URL: http://svn.apache.org/viewvc?rev=1343079&view=rev Log: Fix 0.0.0.0:0 address bug for workers. Make sure we force pull and address resolve
Modified: tomcat/jk/trunk/native/common/jk_ajp_common.c tomcat/jk/trunk/native/common/jk_status.c Modified: tomcat/jk/trunk/native/common/jk_ajp_common.c URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_ajp_common.c?rev=1343079&r1=1343078&r2=1343079&view=diff ============================================================================== --- tomcat/jk/trunk/native/common/jk_ajp_common.c (original) +++ tomcat/jk/trunk/native/common/jk_ajp_common.c Sun May 27 19:05:26 2012 @@ -1130,10 +1130,11 @@ void jk_ajp_push(ajp_worker_t * aw, int ++aw->s->h.sequence; aw->sequence = aw->s->h.sequence; if (aw->s->addr_sequence != aw->addr_sequence) { + ++aw->s->addr_sequence; address_change = JK_TRUE; strncpy(aw->s->host, aw->host, JK_SHM_STR_SIZ); aw->s->port = aw->port; - aw->s->addr_sequence = aw->addr_sequence; + aw->addr_sequence = aw->s->h.sequence; } if (locked == JK_FALSE) jk_shm_unlock(); @@ -2682,16 +2683,13 @@ int ajp_validate(jk_worker_t *pThis, host = "undefined"; } strncpy(p->host, jk_get_worker_host(props, p->name, host), JK_SHM_STR_SIZ); - - if (JK_IS_DEBUG_LEVEL(l)) - jk_log(l, JK_LOG_DEBUG, - "worker %s contact is '%s:%d'", - p->name, p->host, p->port); - /* Copy the contact to shm - */ if (p->s->h.sequence == 0) { /* Initial setup. */ + if (JK_IS_DEBUG_LEVEL(l)) + jk_log(l, JK_LOG_DEBUG, + "worker %s contact is '%s:%d'", + p->name, p->host, p->port); if (p->port > 0) { if (!jk_resolve(p->host, p->port, &p->worker_inet_addr, we->pool, l)) { jk_log(l, JK_LOG_ERROR, @@ -2704,9 +2702,12 @@ int ajp_validate(jk_worker_t *pThis, p->name); } } + p->addr_sequence = 0; p->s->addr_sequence = 0; p->s->last_maintain_time = time(NULL); p->s->last_reset = p->s->last_maintain_time; + p->s->port = p->port; + strncpy(p->s->host, p->host, JK_SHM_STR_SIZ); jk_ajp_push(p, JK_TRUE, l); } else { @@ -2714,8 +2715,10 @@ int ajp_validate(jk_worker_t *pThis, */ if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, - "worker %s contact already configured (%u->%u", - p->name, p->s->addr_sequence, p->addr_sequence); + "worker %s contact '%s:%d' already configured (%u->%u)", + p->name, p->host, p->port, p->s->addr_sequence, p->addr_sequence); + /* Force resolve */ + p->addr_sequence = -1; jk_ajp_pull(p, JK_TRUE, l); } JK_TRACE_EXIT(l); Modified: tomcat/jk/trunk/native/common/jk_status.c URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_status.c?rev=1343079&r1=1343078&r2=1343079&view=diff ============================================================================== --- tomcat/jk/trunk/native/common/jk_status.c (original) +++ tomcat/jk/trunk/native/common/jk_status.c Sun May 27 19:05:26 2012 @@ -4159,7 +4159,7 @@ static int update_worker(jk_ws_service_t rv = 0; rc = commit_member(s, p, lb, wr, aw, &rv, l); if (rv & JK_STATUS_NEEDS_ADDR_PUSH) { - aw->addr_sequence++; + aw->addr_sequence = -1; } if (rv & (JK_STATUS_NEEDS_PUSH | JK_STATUS_NEEDS_ADDR_PUSH)) { wr->sequence = -1; @@ -4209,10 +4209,10 @@ static int update_worker(jk_ws_service_t rv = 0; rc = commit_member(s, p, NULL, NULL, aw, &rv, l); if (rv & JK_STATUS_NEEDS_ADDR_PUSH) { - aw->addr_sequence++; + aw->addr_sequence = -1; } if (rv & (JK_STATUS_NEEDS_PUSH | JK_STATUS_NEEDS_ADDR_PUSH)) { - aw->sequence = 0; + aw->sequence = -1; jk_ajp_push(aw, JK_TRUE, l); } if (rc == JK_FALSE) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org