[ovs-dev] [PATCH] ovs-bugtool: Fix crash when enable --ovs.
Ilya Maximets
i.maximets at ovn.org
Thu Nov 5 16:53:14 UTC 2020
On 11/5/20 12:54 AM, Gregory Rose wrote:
>
> On 11/4/2020 3:16 PM, William Tu wrote:
>> When enabling '--ovs' or when not using '-y', ovs-bugtool crashes due to
>> Traceback (most recent call last):
>> File "/usr/local/sbin/ovs-bugtool", line 1410, in <module>
>> sys.exit(main())
>> File "/usr/local/sbin/ovs-bugtool", line 690, in main
>> for (k, v) in data.items():
>> RuntimeError: dictionary changed size during iteration
>>
>> The patch fixes it by making a copy of the key and value.
>>
>> VMware-BZ: #2663359
>> Signed-off-by: William Tu <u9012063 at gmail.com>
>> ---
>> utilities/bugtool/ovs-bugtool.in | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in
>> index ddb5bc8dc54c..3792502e7a0c 100755
>> --- a/utilities/bugtool/ovs-bugtool.in
>> +++ b/utilities/bugtool/ovs-bugtool.in
>> @@ -687,7 +687,7 @@ exclude those logs from the archive.
>> CAP_OPENVSWITCH_LOGS, CAP_NETWORK_CONFIG]
>> ovs_info_list = ['process-tree']
>> # We cannot use iteritems, since we modify 'data' as we pass through
>> - for (k, v) in data.items():
>> + for (k, v) in list(data.items()):
>> cap = v['cap']
>> if 'filename' in v:
>> info = k[0]
>> @@ -708,7 +708,7 @@ exclude those logs from the archive.
>> # permit the user to filter out data
>> # We cannot use iteritems, since we modify 'data' as we pass through
>> - for (k, v) in data.items():
>> + for (k, v) in list(data.items()):
>> cap = v['cap']
>> if 'filename' in v:
>> key = k[0]
>>
>
> I didn't test it but the patch does what you say it does. It
> should work to prevent the traceback.
>
> Acked-by: Greg Rose <gvrose8192 at gmail.com>
Thanks!
I updated the comment a bit and applied to master. Backported down to 2.13.
Best regards, Ilya Maximets.
More information about the dev
mailing list