[cmaster-next] Topology Tests added to CI - and new BGPd crash discovered

Donald Sharp sharpd at cumulusnetworks.com
Thu Dec 1 07:36:37 EST 2016


Martin -

I'm not getting it to work.  Latest errors:

=============================================================== ERRORS
===============================================================
_______________________________________________ ERROR at setup of
test_quagga_running ________________________________________________

module = <module 'test_bgp_multiview_topo1' from
'/home/sharpd/topotests/bgp_multiview_topo1/test_bgp_multiview_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # Starting Routers
        for i in range(1, 2):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

bgp_multiview_topo1/test_bgp_multiview_topo1.py:287:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc55e4810>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
________________________________________________ ERROR at setup of
test_bgp_converge _________________________________________________

module = <module 'test_bgp_multiview_topo1' from
'/home/sharpd/topotests/bgp_multiview_topo1/test_bgp_multiview_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # Starting Routers
        for i in range(1, 2):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

bgp_multiview_topo1/test_bgp_multiview_topo1.py:287:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc55e4810>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
______________________________________________ ERROR at setup of
test_bgp_routingTable _______________________________________________

module = <module 'test_bgp_multiview_topo1' from
'/home/sharpd/topotests/bgp_multiview_topo1/test_bgp_multiview_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # Starting Routers
        for i in range(1, 2):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

bgp_multiview_topo1/test_bgp_multiview_topo1.py:287:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc55e4810>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
_______________________________________________ ERROR at setup of
test_quagga_running ________________________________________________

module = <module 'test_ospf6_topo1' from
'/home/sharpd/topotests/ospf6-topo1/test_ospf6_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # For debugging after starting net, but before starting
Quagga, uncomment the next line
        # CLI(net)

        # Starting Routers
        for i in range(1, 5):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

ospf6-topo1/test_ospf6_topo1.py:320:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc5557950>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
_______________________________________________ ERROR at setup of
test_ospf6_converged _______________________________________________

module = <module 'test_ospf6_topo1' from
'/home/sharpd/topotests/ospf6-topo1/test_ospf6_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # For debugging after starting net, but before starting
Quagga, uncomment the next line
        # CLI(net)

        # Starting Routers
        for i in range(1, 5):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

ospf6-topo1/test_ospf6_topo1.py:320:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc5557950>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
_____________________________________________ ERROR at setup of
test_ospfv3_routingTable _____________________________________________

module = <module 'test_ospf6_topo1' from
'/home/sharpd/topotests/ospf6-topo1/test_ospf6_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # For debugging after starting net, but before starting
Quagga, uncomment the next line
        # CLI(net)

        # Starting Routers
        for i in range(1, 5):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

ospf6-topo1/test_ospf6_topo1.py:320:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc5557950>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
_______________________________________ ERROR at setup of
test_linux_ipv6_kernel_routingTable
________________________________________

module = <module 'test_ospf6_topo1' from
'/home/sharpd/topotests/ospf6-topo1/test_ospf6_topo1.py'>

    def setup_module(module):
        global topo, net

        print("\n\n** %s: Setup Topology" % module.__name__)
        print("******************************************\n")

        print("Cleanup old Mininet runs")
        os.system('sudo mn -c > /dev/null 2>&1')

        thisDir = os.path.dirname(os.path.realpath(__file__))
        topo = NetworkTopo()

        net = Mininet(controller=None, topo=topo)
        net.start()

        # For debugging after starting net, but before starting
Quagga, uncomment the next line
        # CLI(net)

        # Starting Routers
        for i in range(1, 5):
>           net['r%s' % i].loadConf('zebra', '%s/r%s/zebra.conf' % (thisDir, i))

ospf6-topo1/test_ospf6_topo1.py:320:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <mininet.net.Mininet object at 0x7fecc5557950>, key = 'r1'

    def __getitem__( self, key ):
        """net [ name ] operator: Return node(s) with given name(s)"""
>       return self.nameToNode[ key ]
E       KeyError: 'r1'

/usr/lib/python2.7/dist-packages/mininet/net.py:245: KeyError
====================================================== 7 error in 2.36
seconds =======================================================
sharpd at Ubunutu-dbs-1:~/topotests$


thanks!

donald

On Sun, Nov 27, 2016 at 2:37 AM, Martin Winter
<david at opensourcerouting.org> wrote:
> (Testing the new mailing list as well)
>
> First of all:
>
> I finally got around and added some framework for Topology Tests based on
> Mininet
> to the CI testbed.
> As Mininet is all based on Python, the whole framework is based on pytest.
>
> At this time, there are 2 tests in it:
> - OSPFv3 simple topology
> - BGP Multiview topology
>
> The git for this setup is here:
>         https://git.netdef.org/scm/netdef/topotests.git
>
> There is no proprietary code in it - all can be easy replicated on a Ubuntu
> 16.04
> (I have not tested any other Distros and Mininet requires Linux). Just
> follow
> the directions in the README inside the git and you should be able to
> replicate
> the setup.
>
> The idea is to have some test setup which can be shared and anyone can add
> tests
> (The CI system runs all the tests in this git)
>
> Happy to hear any feedback on this setup…
>
> As a side note, the BGP Multiview test crashes BGPd on startup. Because of
> this,
> I have NOT YET enabled the test results parsing in the CI system (or all
> builds would
> fail at this time)
>
> If you look at the the latest build on our CI system, you’ll see a crash in
> BGPd
> See https://ci1.netdef.org/browse/QUAGGA-CMASTERNEXT-TOPOU1604-106
> Seems to be a crash in the VNC code. (cc’ing Lou to make sure he see this…)
>
> Again, please provide feedback. The idea is to add many more topologies to
> the
> CI system, but would like to hear some feedback on the setup.
>
> - Martin
>
> _______________________________________________
> cmaster-next mailing list
> cmaster-next at lists.nox.tf
> https://lists.nox.tf/listinfo/cmaster-next




More information about the dev mailing list