[Starlingx-discuss] python-eventlet upgrade issue

Chris Friesen chris.friesen at windriver.com
Thu Aug 30 19:33:23 UTC 2018


On 08/29/2018 08:51 PM, Lin, Shuicheng wrote:
> Hi,
>
> Anyone familiar with python-eventlet? I meet a problem when upgrade
> python-eventlet from “0.18.4-2” to “0.20.1-2”, when do CentOS7.5 upgrade.
>
> Eventlet will hook/patch some basic python function, such as “call”/”check_call”
> from subprocess.py
>
> The issue is that, after upgrade to 0.20.1-2 version, these functions don’t work
> as expected.
>
> For the pass log (with eventlet 0.18.4), below log is as expected:
>
> 2018-08-28 05:38:33.816 21142 INFO sysinv.agent.pci [-] Could not determine DPDK
> support for NIC (vendor 0x8086 device: 0x100e), defaulting to False
>
> But for the fail log(with eventlet 0.20.1), it seems the exception is not
> handled correctly:
>
> 2018-08-28 03:48:21.687 21302 ERROR sysinv.openstack.common.periodic_task [-]
> Error during AgentManager._agent_audit: Command '['query_pci_id', '-v 0x8086',
> '-d 0x100e']' returned non-zero exit status 1
>
> Is there any code style change with new eventlet?

There are a couple odd things going on here.

First, you found a bug.  The check at 
http://git.openstack.org/cgit/openstack/stx-config/tree/sysinv/sysinv/sysinv/sysinv/agent/pci.py#n477 
currently reads

if e.returncode == '1'

when it should be

if e.returncode == 1

This explains why you were getting the "Could not determine DPDK support..." 
message" before, when really you should have been getting "DPDK does support NIC..."

I can't explain why the CalledProcessError was caught by 
sysinv.openstack.common.periodic_task when it should have been caught (and 
swallowed) by 
http://git.openstack.org/cgit/openstack/stx-config/tree/sysinv/sysinv/sysinv/sysinv/agent/pci.py#n475

Chris



More information about the Starlingx-discuss mailing list