2012/5/27 <[email protected]>:
> 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;
The above line, was it supposed to be
aw->addr_sequence = aw->s->addr_sequence;
? (I do not really understand it. Just thinking of symmetry and
comparing it with the two lines just above the if(),
[[[
++aw->s->h.sequence;
aw->sequence = aw->s->h.sequence;
]]]
)
Best regards,
Konstantin Kolinko
> }
> 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: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]