mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-14 05:16:25 -04:00
BUG/MEDIUM: state-file: do not allocate a full buffer for each server entry
Starting haproxy with a state file of 700k servers eats 11.2 GB of RAM due to a mistake in the function that loads the strings into a tree: it allocates a full buffer for each backend+server name instead of allocating just the required string. By just fixing this we're down to 80 MB. This should be backported to 2.1.
This commit is contained in:
parent
b3814c2ca8
commit
7d6a1fa311
1 changed files with 2 additions and 2 deletions
|
|
@ -3627,11 +3627,11 @@ void apply_server_state(void)
|
|||
chunk_printf(&trash, "%s %s", bkname, srvname);
|
||||
|
||||
/* store line in tree */
|
||||
st = calloc(1, sizeof(*st) + trash.size);
|
||||
st = calloc(1, sizeof(*st) + trash.data + 1);
|
||||
if (st == NULL) {
|
||||
goto nextline;
|
||||
}
|
||||
memcpy(st->name_name.key, trash.area, trash.size);
|
||||
memcpy(st->name_name.key, trash.area, trash.data + 1);
|
||||
ebst_insert(&state_file, &st->name_name);
|
||||
|
||||
/* save line */
|
||||
|
|
|
|||
Loading…
Reference in a new issue