Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-1280

BGP peers in configuration prevent the configuration from being read through RESTCONF

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • Post-Helium
    • netconf
    • None
    • Operating System: All
      Platform: All

    • 3069

      Attempt to read configuration through RESTCONF when BGP peers are configured will fail with an error.

      Steps to reproduce:

      1. ODL_ROOT=<where_yourODL_installation_lives>
      2. mkdir -p $ODL_ROOT/etc/opendaylight/karaf.
      3. cp $ODL_ROOT/system/org/opendaylight/bgpcep/bgp-controller-config/*/bgp-controller-config-0.4.0-SNAPSHOT.xml $ODL_ROOT/etc/opendaylight/karaf/41-bgp-example.xml.
      4. Uncomment the deactivated "single BFP peer" section in the just created file ($ODL_ROOT/etc/opendaylight/karaf/41-bgp-example.xml).
      5. Boot ODL.
      6. Install features "odl-restconf", "odl-bgppcep-bgp-all" and "odl-netconf-connector-all".
      7. Wait for ODL to fully load (run "top" in another console and wait until CPU usage of the massive Java process stays below 5%).
      8. curl -u 'admin:admin' 127.0.0.1:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules

      You will get:

      {
      "errors": {
      "error": [

      { "error-type": "application", "error-tag": "operation-failed", "error-message": "Problem to get data from transaction." }

      ]
      }
      }

      and the following exception will be added to the logs:

      2015-04-27 15:09:49,234 | WARN | oupCloseable-3-3 | ReadOnlyTx | 265 - org.opendaylight.controller.sal-netconf-connector - 1.2.0.SNAPSHOT | RemoteDevice

      {controller-config}

      : Reading data failed
      java.lang.IllegalArgumentException: Invalid value 'Ibgp' for enum type. Allowed values are: [ebgp, ibgp, rr-client]
      at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[94:com.google.guava:18.0.0]
      at org.opendaylight.yangtools.yang.data.impl.codec.EnumStringCodec.deserialize(EnumStringCodec.java:47)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.codec.EnumStringCodec.deserialize(EnumStringCodec.java:20)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.DomUtils.parseXmlValue(DomUtils.java:58)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.DomUtils.parseXmlValue(DomUtils.java:136)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser.LeafNodeDomParser.parseLeaf(LeafNodeDomParser.java:39)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser.LeafNodeDomParser.parseLeaf(LeafNodeDomParser.java:22)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.LeafNodeBaseParser.parse(LeafNodeBaseParser.java:37)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.LeafNodeBaseParser.parse(LeafNodeBaseParser.java:28)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:50)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:128)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:32)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:63)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:136)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:53)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:27)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:30)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:23)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:60)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:128)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:41)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:48)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:128)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:41)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)[118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:240)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:63)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc$2.apply(NetconfDeviceRpc.java:69)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc$2.apply(NetconfDeviceRpc.java:65)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at com.google.common.util.concurrent.Futures$2.apply(Futures.java:760)[94:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:906)[94:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)[94:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[94:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)[94:com.google.guava:18.0.0]
      at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)[94:com.google.guava:18.0.0]
      at org.opendaylight.controller.sal.connect.netconf.listener.UncancellableFuture.set(UncancellableFuture.java:45)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:268)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:213)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:46)[265:org.opendaylight.controller.sal-netconf-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:61)[169:org.opendaylight.controller.netconf-netty-util:0.3.0.SNAPSHOT]
      at org.opendaylight.controller.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:32)[169:org.opendaylight.controller.netconf-netty-util:0.3.0.SNAPSHOT]
      at org.opendaylight.protocol.framework.AbstractProtocolSession.channelRead0(AbstractProtocolSession.java:53)[151:org.opendaylight.controller.protocol-framework:0.6.0.SNAPSHOT]
      at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)[148:io.netty.transport:4.0.26.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)[174:io.netty.codec:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)[148:io.netty.transport:4.0.26.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)[174:io.netty.codec:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:32)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:329)[148:io.netty.transport:4.0.26.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)[149:io.netty.common:4.0.26.Final]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)[148:io.netty.transport:4.0.26.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)[149:io.netty.common:4.0.26.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[149:io.netty.common:4.0.26.Final]
      at java.lang.Thread.run(Unknown Source)[:1.7.0_67]

            mmarsale@cisco.com Maros Marsalek
            jbehran@cisco.com Jozef Behran
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: