yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #96631
[Bug 2127835] [NEW] Duplicated function registration in resource_extend
Public bug reported:
PROBLEM:
Description field is added to resources by inheriting StandardAttrDescriptionMixin, and StandardAttrDescriptionMixin use the @has_resource_extenders decorator to register _extend_standard_attr_description functions. This causes a problem, any plugin which inherits StandardAttrDescriptionMixin will register _extend_standard_attr_description duplicately.
I added a log so we can see the _resource_extend_functions dict. When querying a network, it will be executed for 4 times.
DEBUG neutron_lib.db.resource_extend [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] resource: networks, funcs: [<weakref at 0x75d9b1d8c1d0; to 'function' at 0x75d9b19dab00 (_extend_availability_zone)>, <weakref at 0x75d9b1d6b240; to 'function' at 0x75d9b19cb880 (_extend_network_dict_address_scope)>, <weakref at 0x75d9b280c040; to 'function' at 0x75d9b1a712d0 (_extend_network_dict_l3)>, <weakref at 0x75d9b1fec860; to 'function' at 0x75d9b1a73a30 (_extend_network_dict_vlan_qinq)>, <weakref at 0x75d9b1f51670; to 'function' at 0x75d9b1a79e10 (_extend_network_dict_vlan_transparent)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b1adda30; to 'function' at 0x75d9b15a3c70 (_ml2_md_extend_network_dict)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b10ca390; to 'function' at 0x75d9b0b8e170 (_extend_external_network_default)>, <weakref at 0x75d9b10c92b0; to 'function' at 0x75d9b0bd45e0 (_extend_tags_dict)>, <weakref at 0x75d9b10f0a40; to 'function' at 0x75d9b0bd6440 (_extend_resource_dict_timestamp)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b1b01670; to 'function' at 0x75d9b0be0700 (extend_resource_dict_revision)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>] {{(pid=11208) apply_funcs /opt/stack/data/venv/lib/python3.10/site-packages/neutron_lib/db/resource_extend.py:95}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
When there are a larger number of plugins, a high volume of query
requests can be time-consuming.
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2127835
Title:
Duplicated function registration in resource_extend
Status in neutron:
New
Bug description:
PROBLEM:
Description field is added to resources by inheriting StandardAttrDescriptionMixin, and StandardAttrDescriptionMixin use the @has_resource_extenders decorator to register _extend_standard_attr_description functions. This causes a problem, any plugin which inherits StandardAttrDescriptionMixin will register _extend_standard_attr_description duplicately.
I added a log so we can see the _resource_extend_functions dict. When querying a network, it will be executed for 4 times.
DEBUG neutron_lib.db.resource_extend [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] resource: networks, funcs: [<weakref at 0x75d9b1d8c1d0; to 'function' at 0x75d9b19dab00 (_extend_availability_zone)>, <weakref at 0x75d9b1d6b240; to 'function' at 0x75d9b19cb880 (_extend_network_dict_address_scope)>, <weakref at 0x75d9b280c040; to 'function' at 0x75d9b1a712d0 (_extend_network_dict_l3)>, <weakref at 0x75d9b1fec860; to 'function' at 0x75d9b1a73a30 (_extend_network_dict_vlan_qinq)>, <weakref at 0x75d9b1f51670; to 'function' at 0x75d9b1a79e10 (_extend_network_dict_vlan_transparent)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b1adda30; to 'function' at 0x75d9b15a3c70 (_ml2_md_extend_network_dict)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b10ca390; to 'function' at 0x75d9b0b8e170 (_extend_external_network_default)>, <weakref at 0x75d9b10c92b0; to 'function' at 0x75d9b0bd45e0 (_extend_tags_dict)>, <weakref at 0x75d9b10f0a40; to 'function' at 0x75d9b0bd6440 (_extend_resource_dict_timestamp)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>, <weakref at 0x75d9b1b01670; to 'function' at 0x75d9b0be0700 (extend_resource_dict_revision)>, <weakref at 0x75d9b1eca840; to 'function' at 0x75d9b1a445e0 (_extend_standard_attr_description)>] {{(pid=11208) apply_funcs /opt/stack/data/venv/lib/python3.10/site-packages/neutron_lib/db/resource_extend.py:95}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
DEBUG neutron.db.standardattrdescription_db [None req-369638d4-a6db-4d55-8e9d-ff0d21372161 demo demo] extend_standard_attr_description executed {{(pid=11208) _extend_standard_attr_description /opt/stack/neutron/neutron/db/standardattrdescription_db.py:29}}
When there are a larger number of plugins, a high volume of query
requests can be time-consuming.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2127835/+subscriptions