mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 09:07:02 +02:00
BUG/MINOR: peers: Missing initializations after peer session shutdown.
This patch fixes a bug introduced by 045e0d4
commit where it was really a bad
idea to reset the peer applet context before shutting down the underlying
session. This had as side effect to cancel the re-initializations done by
peer_session_release(), especially prevented this function from re-initializing
the current table pointer which is there to force annoucement of stick-table
definitions on when reconnecting. Consequently the peers could send stick-table
update messages without a first stick-table definition message. As this is
forbidden, this leaded the remote peers to close the sessions.
This commit is contained in:
parent
ad25c2658e
commit
b7405c1c50
@ -2505,7 +2505,6 @@ static struct task *process_peer_sync(struct task * task, void *context, unsigne
|
|||||||
else {
|
else {
|
||||||
ps->reconnect = tick_add(now_ms, MS_TO_TICKS(50 + random() % 2000));
|
ps->reconnect = tick_add(now_ms, MS_TO_TICKS(50 + random() % 2000));
|
||||||
peer_session_forceshutdown(ps->appctx);
|
peer_session_forceshutdown(ps->appctx);
|
||||||
ps->appctx = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tick_is_expired(ps->heartbeat, now_ms)) {
|
else if (tick_is_expired(ps->heartbeat, now_ms)) {
|
||||||
@ -2513,8 +2512,7 @@ static struct task *process_peer_sync(struct task * task, void *context, unsigne
|
|||||||
ps->flags |= PEER_F_HEARTBEAT;
|
ps->flags |= PEER_F_HEARTBEAT;
|
||||||
appctx_wakeup(ps->appctx);
|
appctx_wakeup(ps->appctx);
|
||||||
}
|
}
|
||||||
if (ps->appctx)
|
task->expire = tick_first(ps->reconnect, ps->heartbeat);
|
||||||
task->expire = tick_first(ps->reconnect, ps->heartbeat);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* else do nothing */
|
/* else do nothing */
|
||||||
|
Loading…
Reference in New Issue
Block a user