1
0
Fork 0

Python traces are seen when tuned-adm verifiy -i is executed for cpu-partitioning profile.

Steps to reproduce :
============
1. yum install tuned.
2. yum install tuned-profiles-cpu-partitioning.noarch
3. tuned-adm profile cpu-partitioning
4. tuned-adm verify -i

Verification failed, current system settings differ from the preset profile.
You can mostly fix this by Tuned restart, e.g.:
  service tuned restart
Sometimes (if some plugins like bootloader are used) also reboot is required.
See tuned log file ('/var/log/tuned/tuned.log') for details.

Python traces are logged in /var/log/tuned/tuned.log file

INFO     tuned.plugins.plugin_script: calling script '/usr/lib/tuned/cpu-partitioning/script.sh' with arguments '['verify', 'ignore_missing']'
ERROR    tuned.plugins.plugin_script: script '/usr/lib/tuned/cpu-partitioning/script.sh' error: 1, 'Traceback (most recent call last):
  File "/usr/libexec/tuned/defirqaffinity.py", line 102, in <module>
    verify(mask)
  File "/usr/libexec/tuned/defirqaffinity.py", line 64, in verify
    interruptdirs.remove("2")
ValueError: list.remove(x): x not in list'
ERROR    tuned.plugins.plugin_script: verify: failed: '[u'/usr/lib/tuned/cpu-partitioning/script.sh']'

If the value 2 is not in the list, call interruptdirs.remove("2") will throw ValueError: list.remove(x): x not in list'.

Fix the code to properly handle ValueError.

Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
This commit is contained in:
Seeteena Thoufeek 2017-06-28 15:43:23 +05:30 committed by Jaroslav Škarvada
parent 55c7128d1c
commit 0a01874fc5

View file

@ -61,10 +61,15 @@ def verify(shouldbemask):
# now verify each /proc/irq/$num/smp_affinity
interruptdirs = [ f for f in os.listdir(irqpath) if os.path.isdir(os.path.join(irqpath,f)) ]
# IRQ 2 - cascaded signals from IRQs 8-15 (any devices configured to use IRQ 2 will actually be using IRQ 9)
interruptdirs.remove("2")
try:
interruptdirs.remove("2")
except ValueError:
pass
# IRQ 0 - system timer (cannot be changed)
interruptdirs.remove("0")
try:
interruptdirs.remove("0")
except ValueError:
pass
for i in interruptdirs:
inplacemask = 0
fname = irqpath + i + "/smp_affinity"