On Thu, 2016-09-22 at 18:14 +0300, Dan Kenigsberg wrote:
> On Thu, Sep 22, 2016 at 05:38:48PM +0300, Nir Soffer wrote:
> > 
> > I think we should get rid of the ctypes code, it is very hard to
> > understand, unsafe, and slow.
> > 
> > If we need to call C we should use proper python extensions.
> 
> Correct.
> https://trello.com/c/HtmyG8kk/74-use-python-libnl3-instead-of-our-own
> -ctype-based-code
> added to our trello.
> 
> Tomas, does python-libnl3 have bindings to handle netlink events? I'm
> looking for an equivalent to our netlink monitor
> https://gerrit.ovirt.org/gitweb?p=vdsm.git;a=blob;f=lib/vdsm/network/
> netlink/monitor.py;h=380e5c93d513467e82f6a345fb976d75a61a36bc;hb=HEAD

Hi Dan,

the libnl3 package is somewhat experimental.

someone added it, and eventually I got around to package it for Fedora.
I don't know who is using it and how well it works.
There are no bug-reports about anything not working, but maybe just
nobody is using it. I don't know.

I strongly suspect if you want to use it, you'd have to improve it.

On the other hand, I'd be open to merge stuff upstream and bring it to
RHEL. For rhel-7.3 I just rebased libnl3 package. I think we could get
the python-package to rhel-7.4 if we improve it sufficiently (if you
plan to do that, we should put that on the agenda early enough).


You certainly know Python better then me, so have a look...


Does that answer the question?
Thomas


> 
> 
> > 
> > 
> > On Thu, Sep 22, 2016 at 5:34 PM, Piotr Kliczewski <pkliczew@redhat.
> > com>
> > wrote:
> > 
> > > 
> > > 
> > > 
> > > On Thu, Sep 22, 2016 at 9:58 AM, Dan Kenigsberg <dan...@redhat.co
> > > m> wrote:
> > > 
> > > > 
> > > > On Wed, Sep 21, 2016 at 12:18:37AM +0300, Nir Soffer wrote:
> > > > > 
> > > > > On Tue, Sep 20, 2016 at 8:18 PM, Nir Soffer <nsoffer@redhat.c
> > > > > om> wrote:
> > > > > > 
> > > > > > Failed only one patch when building 4, so this looks like
> > > > > > a random failure, but the error is disturbing.
> > > > 
> > > > Petr, could you look into it? Could it be that libnl3 changed
> > > > their API?
> > > > Or that a slave is pulling an ancient lib? Or broken kernel?
> > > > Nothing
> > > > makes sense.
> > > > 
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > See http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc
> > > > > > 24-x8
> > > > 6_64/2255/console
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > 17:00:31
> > > > > > ===========================================================
> > > > > > =
> > > > ==========
> > > > > 
> > > > > > 
> > > > > > 17:00:31 ERROR: test_bond_create_failure_on_slave_add
> > > > > > (network.link_bond_test.LinkBondTests)
> > > > > > 17:00:31 --------------------------------------------------
> > > > > > ----------
> > > > ----------
> > > > > 
> > > > > > 
> > > > > > 17:00:31 Traceback (most recent call last):
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/tests/network/link_bond_test.py",
> > > > > 
> > > > > > 
> > > > > > line 83, in test_bond_create_failure_on_slave_add
> > > > > > 17:00:31     base_bond.add_slaves((nic1, nic2))
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/link/bond.py",
> > > > > 
> > > > > > 
> > > > > > line 153, in add_slaves
> > > > > > 17:00:31     with _preserve_iface_state(slave):
> > > > > > 17:00:31   File "/usr/lib64/python3.5/contextlib.py", line
> > > > > > 59, in
> > > > __enter__
> > > > > 
> > > > > > 
> > > > > > 17:00:31     return next(self.gen)
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/link/bond.py",
> > > > > 
> > > > > > 
> > > > > > line 214, in _preserve_iface_state
> > > > > > 17:00:31     dev_was_up = iface.is_up(dev)
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/link/iface.py",
> > > > > 
> > > > > > 
> > > > > > line 54, in is_up
> > > > > > 17:00:31     return is_admin_up(dev)
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/link/iface.py",
> > > > > 
> > > > > > 
> > > > > > line 58, in is_admin_up
> > > > > > 17:00:31     return is_link_up(get_link(dev)['flags'],
> > > > check_oper_status=False)
> > > > > 
> > > > > > 
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/netlink/link.py",
> > > > > 
> > > > > > 
> > > > > > line 56, in get_link
> > > > > > 17:00:31     with _get_link(name=name, sock=sock) as link:
> > > > > > 17:00:31   File "/usr/lib64/python3.5/contextlib.py", line
> > > > > > 59, in
> > > > __enter__
> > > > > 
> > > > > > 
> > > > > > 17:00:31     return next(self.gen)
> > > > > > 17:00:31   File
> > > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-
> > > > > > x86_64
> > > > /vdsm/lib/vdsm/network/netlink/link.py",
> > > > > 
> > > > > > 
> > > > > > line 199, in _get_link
> > > > > > 17:00:31     err = _rtnl_link_get_kernel(sock, index, name,
> > > > byref(link))
> > > > > 
> > > > > > 
> > > > > > 17:00:31 ctypes.ArgumentError: argument 3: <class
> > > > > > 'TypeError'>: wrong
> > > > type
> > > > > 
> > > > > > 
> > > > > > 17:00:31 -------------------- >> begin captured logging <<
> > > > --------------------
> > > > > 
> > > > > > 
> > > > > > 17:00:31 2016-09-20 17:00:12,586 WARNING [py.warnings]
> > > > > > (MainThread)
> > > > > > /usr/lib/python3.5/site-packages/nose/util.py:453:
> > > > DeprecationWarning:
> > > > > 
> > > > > > 
> > > > > > inspect.getargspec() is deprecated, use inspect.signature()
> > > > > > instead
> > > > > > 17:00:31   inspect.getargspec(func)
> > > > > > 17:00:31  (inspect:1041)
> > > > 
> > > > Piotr, the DeprecationWarning is unrelated to our code but we
> > > > are using
> > > > this API, too.
> > > > 
> > > > 
> > > Please take a look at https://gerrit.ovirt.org/64313
> > > 
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > 17:00:31 2016-09-20 17:00:12,587 INFO  [root] (MainThread)
> > > > > > Bond
> > > > > > check_7lzvb has been created. (bond:142)
> > > > > > 17:00:31 2016-09-20 17:00:12,598 INFO  [root] (MainThread)
> > > > > > Bond
> > > > > > check_7lzvb has been destroyed. (bond:149)
> > > > > > 17:00:31 2016-09-20 17:00:12,598 DEBUG [root] (MainThread)
> > > > > > /usr/bin/taskset --cpu-list 0-15 /sbin/ip link add name
> > > > > > dummy_Dmwc5
> > > > > > type dummy (cwd None) (commands:69)
> > > > > > 17:00:31 2016-09-20 17:00:12,607 DEBUG [root] (MainThread)
> > > > > > SUCCESS:
> > > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > > 17:00:31 2016-09-20 17:00:12,608 DEBUG [root] (MainThread)
> > > > > > /usr/bin/taskset --cpu-list 0-15 /sbin/ip link add name
> > > > > > dummy_xIK5C
> > > > > > type dummy (cwd None) (commands:69)
> > > > > > 17:00:31 2016-09-20 17:00:12,615 DEBUG [root] (MainThread)
> > > > > > SUCCESS:
> > > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > > 17:00:31 2016-09-20 17:00:12,617 INFO  [root] (MainThread)
> > > > > > Bond
> > > > > > bond_rwTTFu has been created. (bond:142)
> > > > > > 17:00:31 2016-09-20 17:00:12,634 INFO  [root] (MainThread)
> > > > > > Bond
> > > > > > bond_rwTTFu has been destroyed. (bond:149)
> > > > > > 17:00:31 2016-09-20 17:00:12,634 DEBUG [root] (MainThread)
> > > > > > /usr/bin/taskset --cpu-list 0-15 /sbin/ip link del dev
> > > > > > dummy_Dmwc5
> > > > > > (cwd None) (commands:69)
> > > > > > 17:00:31 2016-09-20 17:00:12,658 DEBUG [root] (MainThread)
> > > > > > SUCCESS:
> > > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > > 17:00:31 2016-09-20 17:00:12,659 DEBUG [root] (MainThread)
> > > > > > /usr/bin/taskset --cpu-list 0-15 /sbin/ip link del dev
> > > > > > dummy_xIK5C
> > > > > > (cwd None) (commands:69)
> > > > > > 17:00:31 2016-09-20 17:00:12,676 DEBUG [root] (MainThread)
> > > > > > SUCCESS:
> > > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > > 17:00:31 --------------------- >> end captured logging <<
> > > > ---------------------
> > > > > 
> > > > > 
> > > > > Another instance, again only one patch failed when building 5
> > > > > patches
> > > > series.
> > > > > 
> > > > > 
> > > > > This time with new log format for the tests.
> > > > > 
> > > > > 18:56:15
> > > > > ============================================================
> > > > ==========
> > > > > 
> > > > > 18:56:15 ERROR: test_bond_create_failure_on_slave_add
> > > > > (network.link_bond_test.LinkBondTests)
> > > > > 18:56:15 ----------------------------------------------------
> > > > > --------
> > > > ----------
> > > > > 
> > > > > 18:56:15 Traceback (most recent call last):
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/tests/network/link_bond_test.py",
> > > > > 
> > > > > line 83, in test_bond_create_failure_on_slave_add
> > > > > 18:56:15     base_bond.add_slaves((nic1, nic2))
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/link/bond.py",
> > > > > 
> > > > > line 153, in add_slaves
> > > > > 18:56:15     with _preserve_iface_state(slave):
> > > > > 18:56:15   File "/usr/lib64/python3.5/contextlib.py", line
> > > > > 59, in
> > > > __enter__
> > > > > 
> > > > > 18:56:15     return next(self.gen)
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/link/bond.py",
> > > > > 
> > > > > line 214, in _preserve_iface_state
> > > > > 18:56:15     dev_was_up = iface.is_up(dev)
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/link/iface.py",
> > > > > 
> > > > > line 54, in is_up
> > > > > 18:56:15     return is_admin_up(dev)
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/link/iface.py",
> > > > > 
> > > > > line 58, in is_admin_up
> > > > > 18:56:15     return is_link_up(get_link(dev)['flags'],
> > > > check_oper_status=False)
> > > > > 
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/netlink/link.py",
> > > > > 
> > > > > line 56, in get_link
> > > > > 18:56:15     with _get_link(name=name, sock=sock) as link:
> > > > > 18:56:15   File "/usr/lib64/python3.5/contextlib.py", line
> > > > > 59, in
> > > > __enter__
> > > > > 
> > > > > 18:56:15     return next(self.gen)
> > > > > 18:56:15   File
> > > > > "/home/jenkins/workspace/vdsm_master_check-patch-fc24-x86_64
> > > > /vdsm/lib/vdsm/network/netlink/link.py",
> > > > > 
> > > > > line 199, in _get_link
> > > > > 18:56:15     err = _rtnl_link_get_kernel(sock, index, name,
> > > > > byref(link))
> > > > > 18:56:15 ctypes.ArgumentError: argument 3: <class
> > > > > 'TypeError'>: wrong
> > > > type
> > > > > 
> > > > > 18:56:15 -------------------- >> begin captured logging <<
> > > > --------------------
> > > > > 
> > > > > 18:56:15 2016-09-20 18:55:55,220 WARNING [py.warnings]
> > > > > (MainThread)
> > > > > /usr/lib/python3.5/site-packages/nose/util.py:453:
> > > > > DeprecationWarning:
> > > > > inspect.getargspec() is deprecated, use inspect.signature()
> > > > > instead
> > > > > 18:56:15   inspect.getargspec(func)
> > > > > 18:56:15  (inspect:1041)
> > > > > 18:56:15 2016-09-20 18:55:55,222 INFO  [root] (MainThread)
> > > > > Bond
> > > > > check_pkopm has been created. (bond:142)
> > > > > 18:56:15 2016-09-20 18:55:55,233 INFO  [root] (MainThread)
> > > > > Bond
> > > > > check_pkopm has been destroyed. (bond:149)
> > > > > 18:56:15 2016-09-20 18:55:55,234 DEBUG [root] (MainThread)
> > > > > /usr/bin/taskset --cpu-list 0-3 /sbin/ip link add name
> > > > > dummy_gmayN
> > > > > type dummy (cwd None) (commands:69)
> > > > > 18:56:15 2016-09-20 18:55:55,242 DEBUG [root] (MainThread)
> > > > > SUCCESS:
> > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > 18:56:15 2016-09-20 18:55:55,242 DEBUG [root] (MainThread)
> > > > > /usr/bin/taskset --cpu-list 0-3 /sbin/ip link add name
> > > > > dummy_p3yZR
> > > > > type dummy (cwd None) (commands:69)
> > > > > 18:56:15 2016-09-20 18:55:55,250 DEBUG [root] (MainThread)
> > > > > SUCCESS:
> > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > 18:56:15 2016-09-20 18:55:55,258 INFO  [root] (MainThread)
> > > > > Bond
> > > > > bond_Siiakr has been created. (bond:142)
> > > > > 18:56:15 2016-09-20 18:55:55,265 INFO  [root] (MainThread)
> > > > > Bond
> > > > > bond_Siiakr has been destroyed. (bond:149)
> > > > > 18:56:15 2016-09-20 18:55:55,265 DEBUG [root] (MainThread)
> > > > > /usr/bin/taskset --cpu-list 0-3 /sbin/ip link del dev
> > > > > dummy_gmayN (cwd
> > > > > None) (commands:69)
> > > > > 18:56:15 2016-09-20 18:55:55,277 DEBUG [root] (MainThread)
> > > > > SUCCESS:
> > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > 18:56:15 2016-09-20 18:55:55,278 DEBUG [root] (MainThread)
> > > > > /usr/bin/taskset --cpu-list 0-3 /sbin/ip link del dev
> > > > > dummy_p3yZR (cwd
> > > > > None) (commands:69)
> > > > > 18:56:15 2016-09-20 18:55:55,289 DEBUG [root] (MainThread)
> > > > > SUCCESS:
> > > > > <err> = b''; <rc> = 0 (commands:93)
> > > > > 18:56:15 --------------------- >> end captured logging <<
> > > > ---------------------
> > > > 
> > > 
> > > 

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Devel mailing list
Devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel

Reply via email to