race condition causes failure to create a firewall with four routers at the same time. Edit

Bug #1758824 reported by Jeffrey Guan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Heat
New
Undecided
Unassigned

Bug Description

In the event that multi routers under one firewall cause failed to create the stack.

The error are:
[root@controller1 engine]# heat event-list guan
+-----------------------------------------------------------+--------------------------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------+
| resource_name | id | resource_status_reason | resource_status | event_time |
+-----------------------------------------------------------+--------------------------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------+
| id13_base_router | a10d0fe8-a62f-4ae2-829d-d5322e0cf7ec | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:41Z |
| id16_base_firewall_policy_rule | 9d490066-8756-4645-b12b-4e7904b8e8dd | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:42Z |
| id7_base_router | 5e2e899e-9cf2-4f35-844a-7a7732719fcd | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:42Z |
| id11_base_router | 6edc8708-ff15-401a-9be3-8822b1b1877e | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:42Z |
| id12_base_router | 0df3dabe-31db-4eae-b30e-79cc15edca5b | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:43Z |
| id12_base_router | 70531a74-c478-47c9-9a3a-f05dc1cb006b | state changed | CREATE_COMPLETE | 2018-03-26T02:54:44Z |
| id13_base_router | 87316460-1eee-46d1-b974-8d5117fe5f60 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:44Z |
| id11_base_router | 86ab6885-15a0-47fd-90c0-9ab4681443d4 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:44Z |
| id7_base_router | c9acbd02-be2f-45da-a0bb-c593c7ba72b2 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:44Z |
| id16_base_firewall_policy_rule | 6c3904ad-d781-4cf1-a23e-07d369c899ad | state changed | CREATE_COMPLETE | 2018-03-26T02:54:44Z |
| id19_base_router_gateway | 93a22b00-dbdf-4102-8141-fc8449484984 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:44Z |
| id14_base_router_gateway | 42b65dc2-cbc4-4ecf-8013-a431c6b9a0b4 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:45Z |
| id15_base_firewall_policy | 3aa8504e-95de-44e4-b337-dce4bd4009fb | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:45Z |
| id18_base_router_gateway | e29b2d20-c9b4-431f-b828-aaa2590d4ba2 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:46Z |
| id17_base_router_gateway | ccc41644-5d5e-418c-960f-b66b2d625ce3 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:46Z |
| id19_base_router_gateway | 1a00ca66-1f0e-40cf-b72d-fe0d6b75e350 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:48Z |
| id14_base_router_gateway | e242f935-c455-45d9-8813-b5a47ba41280 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:48Z |
| id15_base_firewall_policy | 487de03b-f673-4ba2-895e-c90594bf0c8e | state changed | CREATE_COMPLETE | 2018-03-26T02:54:48Z |
| id18_base_router_gateway | ebcb64e7-2962-46e5-b79d-68554985dc92 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:48Z |
| id17_base_router_gateway | 61ea791c-5897-4f39-a1b1-ea20eb62ca48 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:48Z |
| id10_base_firewall | 2cd71495-2627-4970-8f0d-090793d89e29 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:48Z |
| id10_base_firewall | 82c300ef-d3d3-4b9c-a65c-654f34cba3ad | state changed | CREATE_COMPLETE | 2018-03-26T02:54:49Z |
| id7_base_router_id10_base_firewall_fw_router_association | 86a90851-04d4-477d-9e7e-8a72fd7cbe85 | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:49Z |
| id13_base_router_id10_base_firewall_fw_router_association | 74c943ee-175d-4e34-915b-ca3e1c54cdca | state changed | CREATE_IN_PROGRESS | 2018-03-26T02:54:49Z |
| id13_base_router_id10_base_firewall_fw_router_association | 04be758b-f5c7-417c-9e1a-3ee48bc92ea9 | Conflict: Operation cannot be performed since associated Firewall 600a86e5-39ab-441d-9ec3-2e3843469786 is in PENDING_UPDATE. | CREATE_FAILED | 2018-03-26T02:54:50Z |
| id7_base_router_id10_base_firewall_fw_router_association | dcc97586-c1cc-4e9a-b390-0746392bfad9 | state changed | CREATE_COMPLETE | 2018-03-26T02:54:51Z |
+-----------------------------------------------------------+--------------------------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------+

The example yaml template is as follows:

[root@controller1 engine]#cat test.hot.yaml
heat_template_version: 2015-04-30
description:
parameters:
 id7_base_router_base_l3_agent_area:
  default: 6fb440a6-6cd8-4119-b0a4-2db272ccab15
  type: string

 id10_base_firewall_base_firewall_name:
  type: string

 id11_base_router_base_l3_agent_area:
  default: 6fb440a6-6cd8-4119-b0a4-2db272ccab15
  type: string

 id17_base_router_gateway_base_router_gateway_network:
  type: string

 id16_base_firewall_policy_rule_base_firewall_rule_enabled:
  type: boolean

 id16_base_firewall_policy_rule_base_firewall_rule_source_ip_address:
  type: string

 id10_base_firewall_base_firewall_admin_state_up:
  type: boolean

 id14_base_router_gateway_base_router_gateway_network:
  type: string

 id15_base_firewall_policy_base_firewall_policy_audited:
  type: boolean

 id16_base_firewall_policy_rule_base_firewall_rule_ip_version:
  type: number

 id16_base_firewall_policy_rule_base_firewall_rule_name:
  type: string

 id12_base_router_base_l3_agent_area:
  default: 6fb440a6-6cd8-4119-b0a4-2db272ccab15
  type: string

 id7_base_router_base_router_name:
  default: base_router_name
  type: string

 id14_base_router_gateway_base_max_up_kbps:
  default: 1000
  type: number

 id12_base_router_base_router_name:
  default: base_router_name
  type: string

 id16_base_firewall_policy_rule_base_firewall_rule_protocol:
  type: string

 id10_base_firewall_base_firewall_shared:
  type: boolean

 id11_base_router_base_router_name:
  default: base_router_name
  type: string

 id17_base_router_gateway_base_max_up_kbps:
  default: 1000
  type: number

 id18_base_router_gateway_base_max_up_kbps:
  default: 1000
  type: number

 id19_base_router_gateway_base_router_gateway_network:
  type: string

 id18_base_router_gateway_base_router_gateway_network:
  type: string

 id15_base_firewall_policy_base_firewall_policy_name:
  type: string

 id19_base_router_gateway_base_max_down_kbps:
  default: 1000
  type: number

 id19_base_router_gateway_base_max_up_kbps:
  default: 1000
  type: number

 id16_base_firewall_policy_rule_base_firewall_rule_shared:
  type: boolean

 id18_base_router_gateway_base_max_down_kbps:
  default: 1000
  type: number

 id15_base_firewall_policy_base_firewall_policy_shared:
  type: boolean

 id13_base_router_base_l3_agent_area:
  default: 6fb440a6-6cd8-4119-b0a4-2db272ccab15
  type: string

 id16_base_firewall_policy_rule_base_firewall_rule_destination_ip_address:
  type: string

 id17_base_router_gateway_base_max_down_kbps:
  default: 1000
  type: number

 id16_base_firewall_policy_rule_base_firewall_rule_action:
  type: string

 id13_base_router_base_router_name:
  default: base_router_name
  type: string

 id14_base_router_gateway_base_max_down_kbps:
  default: 1000
  type: number

resources:
 id7_base_router_id10_base_firewall_fw_router_association:
  type: OS::Neutron::FirewallRouterAssociation
  properties:
   router_id: {get_resource: id7_base_router}

   firewall_id: {get_resource: id10_base_firewall}

 id11_base_router_id10_base_firewall_fw_router_association:
  type: OS::Neutron::FirewallRouterAssociation
  properties:
   router_id: {get_resource: id11_base_router}

   firewall_id: {get_resource: id10_base_firewall}

 id11_base_router:
  type: OS::Neutron::Router
  properties:
   l3_agent_area: {get_param: id11_base_router_base_l3_agent_area}

   name: {get_param: id11_base_router_base_router_name}

 id12_base_router:
  type: OS::Neutron::Router
  properties:
   l3_agent_area: {get_param: id12_base_router_base_l3_agent_area}

   name: {get_param: id12_base_router_base_router_name}

 id19_base_router_gateway:
  type: OS::Neutron::RouterGateway
  properties:
   router_id: {get_resource: id13_base_router}

   max_up_kbps: {get_param: id19_base_router_gateway_base_max_up_kbps}

   network: {get_param: id19_base_router_gateway_base_router_gateway_network}

   max_down_kbps: {get_param: id19_base_router_gateway_base_max_down_kbps}

 id13_base_router:
  type: OS::Neutron::Router
  properties:
   l3_agent_area: {get_param: id13_base_router_base_l3_agent_area}

   name: {get_param: id13_base_router_base_router_name}

 id7_base_router:
  type: OS::Neutron::Router
  properties:
   l3_agent_area: {get_param: id7_base_router_base_l3_agent_area}

   name: {get_param: id7_base_router_base_router_name}

 id15_base_firewall_policy:
  type: OS::Neutron::FirewallPolicy
  properties:
   shared: {get_param: id15_base_firewall_policy_base_firewall_policy_shared}

   name: {get_param: id15_base_firewall_policy_base_firewall_policy_name}

   firewall_rules: [
    {get_resource: id16_base_firewall_policy_rule}
   ]
   audited: {get_param: id15_base_firewall_policy_base_firewall_policy_audited}

 id17_base_router_gateway:
  type: OS::Neutron::RouterGateway
  properties:
   router_id: {get_resource: id11_base_router}

   max_up_kbps: {get_param: id17_base_router_gateway_base_max_up_kbps}

   network: {get_param: id17_base_router_gateway_base_router_gateway_network}

   max_down_kbps: {get_param: id17_base_router_gateway_base_max_down_kbps}

 id16_base_firewall_policy_rule:
  type: OS::Neutron::FirewallRule
  properties:
   protocol: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_protocol}

   name: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_name}

   enabled: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_enabled

   source_ip_address: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_source_ip_address}

   destination_ip_address: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_destination_ip_address}

   ip_version: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_ip_version}

   shared: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_shared}

   action: {get_param: id16_base_firewall_policy_rule_base_firewall_rule_action}

 id13_base_router_id10_base_firewall_fw_router_association:
  type: OS::Neutron::FirewallRouterAssociation
  properties:
   router_id: {get_resource: id13_base_router}

   firewall_id: {get_resource: id10_base_firewall}

 id12_base_router_id10_base_firewall_fw_router_association:
  type: OS::Neutron::FirewallRouterAssociation
  properties:
   router_id: {get_resource: id12_base_router}

   firewall_id: {get_resource: id10_base_firewall}

 id18_base_router_gateway:
  type: OS::Neutron::RouterGateway
  properties:
   router_id: {get_resource: id12_base_router}

   max_up_kbps: {get_param: id18_base_router_gateway_base_max_up_kbps}

   network: {get_param: id18_base_router_gateway_base_router_gateway_network}

   max_down_kbps: {get_param: id18_base_router_gateway_base_max_down_kbps}

 id10_base_firewall:
  type: OS::Neutron::Firewall
  properties:
   firewall_policy_id: {get_resource: id15_base_firewall_policy}

   shared: {get_param: id10_base_firewall_base_firewall_shared}

   name: {get_param: id10_base_firewall_base_firewall_name}

   admin_state_up: {get_param: id10_base_firewall_base_firewall_admin_state_up}

 id14_base_router_gateway:
  type: OS::Neutron::RouterGateway
  properties:
   router_id: {get_resource: id7_base_router}

   max_up_kbps: {get_param: id14_base_router_gateway_base_max_up_kbps}

   network: {get_param: id14_base_router_gateway_base_router_gateway_network}

   max_down_kbps: {get_param: id14_base_router_gateway_base_max_down_kbps}

Thanks,
Jeffrey Guan

Rico Lin (rico-lin)
Changed in heat:
milestone: none → no-priority-tag-bugs
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.