I think the issue here is that nova.virt.firewall.py IptablesFirewallDriver.instance_rules() is calling get_instance_nw_info() which is causing rpcs to be fired off _while_still_holding_the_iptables_lock. I suspect that the rpcs need to happen outside the lock.
From yet more instrumented code:
A synchronous RPC call is being made while a lock is held. This is probably a bug. Please report it. Include lines following this that start with ** please.
** multicall
** call
** call
** call
** get_instance_nw_info
** instance_rules
** add_filters_for_instance
** do_refresh_security_group_rules
** inner_while_holding_lock
** refresh_security_group_members
** refresh_security_group_members
** refresh_security_group_members
** wrapped
** _process_data
** wrapped
** _spawn_n_impl
** end of stack trace
I think the issue here is that nova.virt. firewall. py IptablesFirewal lDriver. instance_ rules() is calling get_instance_ nw_info( ) which is causing rpcs to be fired off _while_ still_holding_ the_iptables_ lock. I suspect that the rpcs need to happen outside the lock.
From yet more instrumented code:
A synchronous RPC call is being made while a lock is held. This is probably a bug. Please report it. Include lines following this that start with ** please. nw_info for_instance security_ group_rules holding_ lock security_ group_members security_ group_members security_ group_members
** multicall
** call
** call
** call
** get_instance_
** instance_rules
** add_filters_
** do_refresh_
** inner_while_
** refresh_
** refresh_
** refresh_
** wrapped
** _process_data
** wrapped
** _spawn_n_impl
** end of stack trace