In populate_bitmap(), if there are no available IP addresses, then the loop should be skipped. for (i = 0; i < ipalloc_state->num; i++) { struct ctdb_public_ip_list *avail = &ipalloc_state->available_public_ips[i]; /* Check to see if "ip" is available on node "i" */ for (j = 0; j < avail->num; j++) { if (ctdb_sock_addr_same_ip( &ip->addr, &avail->ip[j].addr)) { ip->available_on[i] = true; break; } } }
The calculation of known and available IPs in ctdb_takeover_helper is wrong. Both the ip lists should be the same size as the nodemap.
Created attachment 12825 [details] Patches for v4-6
Hi Karolin, This is ready for 4.6. Thanks...
Pushed to autobuild-v4-6-test.
(In reply to Karolin Seeger from comment #4) Pushed to v4-6-test. Closing out bug report. Thanks!