Bug 1417738

Summary: The packaging for python-openvswitch should build the C json extension
Product: Red Hat OpenStack Reporter: Terry Wilson <twilson>
Component: openvswitchAssignee: Terry Wilson <twilson>
Status: CLOSED ERRATA QA Contact: Ofer Blaut <oblaut>
Severity: medium Docs Contact:
Priority: medium    
Version: 11.0 (Ocata)CC: aloughla, amuller, apevec, chrisw, dalvarez, fleitner, jschluet, rhos-maint, srevivo, twilson
Target Milestone: z5Keywords: TestOnly, Triaged, ZStream
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openvswitch-2.9.0-56.el7fdn Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-03-14 13:28:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Terry Wilson 2017-01-30 20:08:02 UTC
Description of problem:
The pure-python implementation of OVS's JSON parser is 60x slower than the C version. Parsing JSON is currently takes more time than anything else according to profiling. There is a python C extension available to speed up this parsing, but it isn't built in the packaging process.

Version-Release number of selected component (if applicable):
2.6+

How reproducible:
Always

Steps to Reproduce:
1. Install python-openvswitch
2.  
3.

Actual results:


Expected results:


Additional info:

Comment 1 Terry Wilson 2017-01-30 20:13:06 UTC
Um, I'm not sure why it posted that while I was still typing, but ok:

Steps to reproduce:
1. Install python-openvswitch
2. Try to import ovs._json

Actual Results:
ImportError

Expected results:
Import succeeds.

I have heard that packages built here: https://github.com/numansiddique/overcloud_image_for_ovn/tree/master/rpms have a separate package for python-openvswitch which includes support for the C extension, so maybe the work numans did there can be re-used.

Comment 2 Assaf Muller 2017-07-14 21:58:24 UTC
Is this still relevant? If so, maybe we can be of service?

Comment 3 Terry Wilson 2017-08-15 18:38:16 UTC
amuller: it is still relevant. I'll see if I can figure out how the OVS packaging even works.

Comment 4 Terry Wilson 2017-08-18 13:15:45 UTC
Upstream patch to add the C extension to the Fedora/CentOS python-openvswitch RPMs: https://patchwork.ozlabs.org/patch/802892/

Comment 6 Assaf Muller 2017-12-19 16:16:31 UTC
Ping. What is the current status here and what's there left to do?

Comment 7 Daniel Alvarez Sanchez 2018-02-19 14:38:10 UTC
*** Bug 1546756 has been marked as a duplicate of this bug. ***

Comment 8 Daniel Alvarez Sanchez 2018-02-19 16:28:59 UTC
These were the attempts to achieve getting the C JSON parser in by default:
* https://patchwork.ozlabs.org/patch/699900/
* https://patchwork.ozlabs.org/patch/802892/

It'd be nice to have in OVS 2.9 :)

Comment 9 Flavio Leitner 2018-03-01 18:18:53 UTC
Hi,

Looks like the direction upstream was to be a subpackage of OVS and not a standalone new package.

Another important thing is that upstream compiles as shared libraries while RHEL is build statically.  We will need to come up with a way to change to shared while still linking statically with DPDK.

fbl

Comment 11 Terry Wilson 2018-08-15 17:37:15 UTC
to verify, try import ovs._json, if it succeeds, the C json extensions were built.

Comment 12 Lon Hohberger 2018-09-18 10:36:41 UTC
According to our records, this should be resolved by openvswitch-2.9.0-56.el7fdp.  This build is available now.

Comment 14 errata-xmlrpc 2019-03-14 13:28:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:0552