Comment 0 for bug 1424745

Revision history for this message
Samuel de Medeiros Queiroz (samueldmq) wrote : SQL is not able to honor multiple filters in driver_hints.Hints()

When iterating over the list of filters to honor them [1], the method remove elements from that list at the same time [2].

This way, not all filters are honored since the internal idx used by python is not aware of the removal while iterating. The following example code exposes this behavior:

a=[1,2]
for b in a:
    print b
    a.remove(b)

It prints 1 and the list ends with element 2.

[1] https://github.com/openstack/keystone/blob/master/keystone/common/sql/core.py#L319-L325
[2] https://github.com/openstack/keystone/blob/master/keystone/common/sql/core.py#L314