Uploaded image for project: 'genius'
  1. genius
  2. GENIUS-244

CDTCN is getting triggered twice

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: High High
    • Fluorine-SR2, Neon
    • Fluorine-SR1, Neon
    • None
    • None

      I am hitting one weird issue in genius, where I see a particular CDTCN being triggered twice. Was having a DEBUG log in the add(), remove() methods of the class below, which is getting printed twice in the CSIT log for the same key add/delete.

      https://github.com/opendaylight/genius/blob/master/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/listeners/InterfaceConfigListener.java#L99

      This is a heavily used DS in genius, and this can lead to serious performance issues.

      The behavior is same in Fluorine as well as Neon. [Did not check oxygen though]

      The corresponding yang model at :

      https://github.com/opendaylight/genius/blob/master/interfacemanager/interfacemanager-api/src/main/yang/odl-interface.yang#L241

      I am able to reproduce the issue locally with a simply PUT/DELETE request.

      Step 1 : opendaylight-user@root>feature:install odl-genius-rest

      Step 2 : Do a PUT at http://localhost:8181/restconf/config/ietf-interfaces:interfaces/interface/l2vlan-trunk 

      {
      "interface": [
      
      { "enabled": true, "name": "l2vlan-trunk", "odl-interface:l2vlan-mode": "transparent", "odl-interface:parent-interface": "tap8ed70586-6c", "type": "iana-if-type:l2vlan" }
      
      ]
      }

      opendaylight-user@root>log:tail
      10:59:34.962 DEBUG [opendaylight-cluster-data-notification-dispatcher-119] Received Interface Add Event: KeyedInstanceIdentifier

      {targetType=interface org.o pendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface, path=[org.opendaylight.yang.gen.v1.urn.ietf.params.xml. ns.yang.ietf.interfaces.rev140508.Interfaces, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface[key=I nterfaceKey\\\\{_name=l2vlan-trunk}

      ]]}, Interface

      {getName=l2vlan-trunk, getType=interface org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.typ e.rev170119.L2vlan, isEnabled=true, augmentations=

      {interface org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan=IfL2v lan

      {getL2vlanMode=Transparent}

      , interface org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs=ParentRefs{getParentIn terface=tap8ed70586-6c}}}
      10:59:34.969 DEBUG [opendaylight-cluster-data-notification-dispatcher-139] Received Interface Add Event: KeyedInstanceIdentifier{targetType=interface org.o pendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface, path=[org.opendaylight.yang.gen.v1.urn.ietf.params.xml. ns.yang.ietf.interfaces.rev140508.Interfaces, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface[key=I nterfaceKey{_name=l2vlan-trunk}

      ]]}, Interface{getName=l2vlan-trunk, getType=interface org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.typ
      e.rev170119.L2vlan, isEnabled=true, augmentations=

      {interface org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan=IfL2v lan
      {getL2vlanMode=Transparent}

      , interface org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs=ParentRefs

      {getParentIn terface=tap8ed70586-6c}

      }}
      10:59:34.973 INFO [jobcoordinator-main-task-0] Creating child interface l2vlan-trunk of type Transparent bound on parent-interface tap8ed70586-6c
      10:59:34.975 INFO [jobcoordinator-main-task-0] adding vlan configuration for interface l2vlan-trunk
      10:59:34.983 DEBUG [jobcoordinator-main-task-0] creating lport tag to interface map for l2vlan-trunk ifIndex 5
      10:59:34.998 DEBUG [jobcoordinator-main-task-0] could not retrieve interface state corresponding to l2vlan-trunk, processing will be resumed when interface
      -state is available
      10:59:35.010 INFO [ResourceBatchingManager-0] Total taken ##time = 12ms for resourceList of size 1 for resourceType INTERFACEMGR-DEFAULT-OPERATIONAL

            k.faseela Faseela K
            k.faseela Faseela K
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: