Due to the implementation of the default endpoints, the member_batch_update doesn't do anything if all members are deleted via member batch update:
Batch updating members: old='[]', new='[]', updated='[]'...
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server [-] Exception during message handling: IndexError: list index out of range
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/local/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 166, in _process_incoming
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 265, in dispatch
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 194, in _do_dispatch
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/local/lib/python2.7/site-packages/octavia/controller/queue/endpoint.py", line 122, in batch_update_members
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server old_member_ids, new_member_ids, updated_members)
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/local/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 328, in inner
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server return f(*args, **kwargs)
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server File "/var/lib/openstack/src/octavia-f5-provider-driver/octavia_f5/controller/worker/controller_worker.py", line 356, in batch_update_members
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server pool = updated_members[0][0].pool
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server IndexError: list index out of range
2020-04-07 09:21:51,252.252 33 ERROR oslo_messaging.rpc.server
The index out of bounds error is fixed by d79e88aa229c385fd511783b625a845e45b91218, but the operation is now no op. This is later fixed by the reconilliation loop.
Proposal:
Diverge from the default endpoints and implement own worker process (since endpoints are hard-coded by upstream worker implementation)
Due to the implementation of the default endpoints, the member_batch_update doesn't do anything if all members are deleted via member batch update:
The index out of bounds error is fixed by d79e88aa229c385fd511783b625a845e45b91218, but the operation is now no op. This is later fixed by the reconilliation loop.
Proposal: Diverge from the default endpoints and implement own worker process (since endpoints are hard-coded by upstream worker implementation)