On 30 Aug 2024, at 12:23, Eelco Chaudron wrote:
> On 30 Aug 2024, at 11:15, Simon Horman wrote:
>
>> On Thu, Aug 29, 2024 at 12:04:33PM -0400, Michael Santana wrote:
>>> Python3.12 is throwing syntax warnings in ovs-dpctl-top
>>>
>>> [root@localhost ~]# python --version
>>> Python 3.12.5
>>> [root@localhost ~]# ovs-dpctl-top --help > /dev/null
>>> /usr/bin/ovs-dpctl-top:392: SyntaxWarning: invalid escape sequence '\w'
>>> FIELDS_CMPND = re.compile("([\w]+)\((.+)\)")
>>> /usr/bin/ovs-dpctl-top:394: SyntaxWarning: invalid escape sequence '\w'
>>> FIELDS_CMPND_ELEMENT = re.compile("([\w:]+)=([/\.\w:]+)")
>>> /usr/bin/ovs-dpctl-top:395: SyntaxWarning: invalid escape sequence '\w'
>>> FIELDS_ELEMENT = re.compile("([\w]+):([-\.\w]+)")
>>>
>>>
>>> The warning seems to be new to python3.12
>>>
>>> Python 3.12.5 (main, Aug 23 2024, 00:00:00)
>>>>>> import re
>>>>>> re.compile("([\w]+)\((.+)\)")
>>> <stdin>:1: SyntaxWarning: invalid escape sequence '\w'
>>> re.compile('([\\w]+)\\((.+)\\)')
>>>>>> re.compile(r"([\w]+)\((.+)\)")
>>> re.compile('([\\w]+)\\((.+)\\)')
>>
>> Thanks Michael,
>>
>> I also see this.
>>
>>>
>>> Python 3.11.4 (main, Jun 7 2023, 00:00:00)
>>>>>> import re
>>>>>> re.compile("([\w]+)\((.+)\)")
>>> re.compile('([\\w]+)\\((.+)\\)')
>>>
>>>
>>> Prepending the string with r tells python treat the string as a raw string
>>> literal and to not try to scape \w, \(, etc, and gets rid of the warning
>>>
>>> Signed-off-by: Michael Santana <[email protected]>
>>
>> The checkpatch warning flagged by the robot aside, which I think can be
>> addressed when the patch is applied, this looks good to me.
>>
>> Acked-by: Simon Horman <[email protected]>
>
> Tested the change, and it looks good to me.
>
> Acked-by: Eelco Chaudron <[email protected]>
I wanted to add that I have a general problem with the tool, I assume it’s
related to my machine, but it might not be.
I get these errors for flows added:
in_port(2)in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib64/python3.9/threading.py", line 980, in _bootstrap_inner
self.run()
File "/root/Documents/scratch/ovs/./utilities/ovs-dpctl-top", line 1126, in run
self._flow_db.decay(self._interval)
File "/root/Documents/scratch/ovs/./utilities/ovs-dpctl-top", line 1010, in
decay
for (key, value) in self._flows.items():
RuntimeError: dictionary changed size during iteration
Can you confirm the tool works for you with active traffic?
//Eelco
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev