mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MINOR: peers: Missing TX cache entries reset.
The TX part of a cache for a dictionary is made of an reserved array of ebtree nodes which are pointers to dictionary entries. So when we flush the TX part of such a cache, we must not only remove these nodes to dictionary entries from their ebtree. We must also reset their values. Furthermore, the LRU key and the last lookup result must also be reset.
This commit is contained in:
parent
f9e51beec1
commit
ea875e62e6
@ -3062,8 +3062,12 @@ static inline void flush_dcache(struct peer *peer)
|
||||
int i;
|
||||
struct dcache *dc = peer->dcache;
|
||||
|
||||
for (i = 0; i < dc->max_entries; i++)
|
||||
for (i = 0; i < dc->max_entries; i++) {
|
||||
ebpt_delete(&dc->tx->entries[i]);
|
||||
dc->tx->entries[i].key = NULL;
|
||||
}
|
||||
dc->tx->prev_lookup = NULL;
|
||||
dc->tx->lru_key = 0;
|
||||
|
||||
memset(dc->rx, 0, dc->max_entries * sizeof *dc->rx);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user