Skip to content

[servicebus, eventhubs] Potential bug because of modifying the list during iteration #26765

Description

@bebound

Describe the bug

In https://github.com/azure/azure-cli/blob/ae4a96ad73e6e6b4cd27b29ade5cbe65e62dadf0/src/azure-cli/azure/cli/command_modules/eventhubs/operations/network_rule_set.py#L64-L67

   for i in ip_rule:
        for j in ip_rule_list:
            if i['ip-address'] == j["ip_mask"]:
                ip_rule_list.remove(j)

ip_rule_list is not fully iterated if j is removed. For example:

a = [1,2,3,4]
for i in a:
    print(i)
    a.remove(i)
>>> 1
>>> 3

There are four parts contains similar logic.

Related PR: #26685, found by modified-iterating-list rule.

c:\users\kk\developer\azure-cli\src\azure-cli\azure\cli\command_modules\eventhubs\operations\network_rule_set.py:67:16: W4701: Iterated list 'ip_rule_list' is being modified inside for loop body, consider iterating through a copy of it instead. (modified-iterating-list)
c:\users\kk\developer\azure-cli\src\azure-cli\azure\cli\command_modules\eventhubs\operations\network_rule_set.py:126:16: W4701: Iterated list 'virtual_network_rule_list' is being modified inside for loop body, consider iterating through a copy of it instead. (modified-iterating-list)
c:\users\kk\developer\azure-cli\src\azure-cli\azure\cli\command_modules\servicebus\operations\network_rule_set.py:64:16: W4701: Iterated list 'ip_rule_list' is being modified inside for loop body, consider iterating through a copy of it instead. (modified-iterating-list)
c:\users\kk\developer\azure-cli\src\azure-cli\azure\cli\command_modules\servicebus\operations\network_rule_set.py:124:16: W4701: Iterated list 'virtual_network_rule_list' is being modified inside for loop body, consider iterating through a copy of it instead. (modified-iterating-list)

Metadata

Metadata

Labels

Event Hubsaz eventhubsService AttentionThis issue is responsible by Azure service team.Service Busaz servicebusbugThis issue requires a change to an existing behavior in the product in order to be resolved.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions