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

Fails to inject config module with no list dependency entry

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • None
    • config
    • None
    • Operating System: All
      Platform: All

    • 5444

      Steps to reproduce:
      1. Run ODL Karaf distribution (Boron)
      2. Install features odl-bgpcep-bgp-all odl-restconf odl-netconf-connector-all
      3. Via RESTCONF add BGP peer config module as per https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#BGP_Peer_2
      4. Observe the exception in response and ODL logs:

      2016-03-01 11:00:24,011 | ERROR | entLoopGroup-6-2 | NetconfOperationRouterImpl | 285 - org.opendaylight.netconf.impl - 1.1.0.SNAPSHOT | Unexpected exception during netconf operation execution
      java.lang.IllegalStateException: Unable to set attributes for org.opendaylight.controller:instanceName=example-bgp-peer,TransactionName=ConfigTransaction-105-113,type=Module,moduleFactoryName=bgp-peer, Error with attribute add-path:AttributeConfigElement [defaultValue=null, value=null]
      at org.opendaylight.controller.config.facade.xml.strategy.ReplaceEditConfigStrategy.executeStrategy(ReplaceEditConfigStrategy.java:60)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.strategy.AbstractEditConfigStrategy.executeConfiguration(AbstractEditConfigStrategy.java:33)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacade.setOnTransaction(ConfigSubsystemFacade.java:238)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacade.test(ConfigSubsystemFacade.java:165)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacade.executeTests(ConfigSubsystemFacade.java:149)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.ConfigSubsystemFacade.executeConfigExecution(ConfigSubsystemFacade.java:123)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      at org.opendaylight.netconf.confignetconfconnector.operations.editconfig.EditConfig.getResponseInternal(EditConfig.java:48)[287:org.opendaylight.netconf.config-netconf-connector:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.confignetconfconnector.operations.editconfig.EditConfig.handleWithNoSubsequentOperations(EditConfig.java:75)[287:org.opendaylight.netconf.config-netconf-connector:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[198:org.opendaylight.netconf.util:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:101)[198:org.opendaylight.netconf.util:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl$NetconfOperationExecution.execute(NetconfOperationRouterImpl.java:182)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl.executeOperationWithHighestPriority(NetconfOperationRouterImpl.java:111)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl.onNetconfMessage(NetconfOperationRouterImpl.java:84)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.NetconfServerSessionListener.processDocument(NetconfServerSessionListener.java:113)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.NetconfServerSessionListener.onMessage(NetconfServerSessionListener.java:86)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.impl.NetconfServerSessionListener.onMessage(NetconfServerSessionListener.java:29)[285:org.opendaylight.netconf.impl:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:64)[199:org.opendaylight.netconf.netty-util:1.1.0.SNAPSHOT]
      at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:35)[199:org.opendaylight.netconf.netty-util:1.1.0.SNAPSHOT]
      at org.opendaylight.protocol.framework.AbstractProtocolSession.channelRead0(AbstractProtocolSession.java:53)[107:org.opendaylight.controller.protocol-framework:0.8.0.SNAPSHOT]
      at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)[92:io.netty.transport:4.0.33.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276)[93:io.netty.codec:4.0.33.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263)[93:io.netty.codec:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)[92:io.netty.transport:4.0.33.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276)[93:io.netty.codec:4.0.33.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263)[93:io.netty.codec:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:427)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.local.LocalChannel.access$500(LocalChannel.java:48)[92:io.netty.transport:4.0.33.Final]
      at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:383)[92:io.netty.transport:4.0.33.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:358)[91:io.netty.common:4.0.33.Final]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)[92:io.netty.transport:4.0.33.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[91:io.netty.common:4.0.33.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[91:io.netty.common:4.0.33.Final]
      at java.lang.Thread.run(Thread.java:745)[:1.8.0_66]
      Caused by: javax.management.RuntimeMBeanException: javax.management.RuntimeMBeanException: java.lang.IllegalArgumentException: Null not supported
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:839)[:1.8.0_66]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:852)[:1.8.0_66]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:752)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.JmxMBeanServer.setAttribute(JmxMBeanServer.java:739)[:1.8.0_66]
      at org.opendaylight.controller.config.util.ConfigTransactionJMXClient.setAttribute(ConfigTransactionJMXClient.java:288)[127:org.opendaylight.controller.config-util:0.5.0.SNAPSHOT]
      at org.opendaylight.controller.config.facade.xml.strategy.ReplaceEditConfigStrategy.executeStrategy(ReplaceEditConfigStrategy.java:49)[133:org.opendaylight.controller.config-manager-facade-xml:0.5.0.SNAPSHOT]
      ... 38 more
      Caused by: javax.management.RuntimeMBeanException: java.lang.IllegalArgumentException: Null not supported
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:839)[:1.8.0_66]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:852)[:1.8.0_66]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:752)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.JmxMBeanServer.setAttribute(JmxMBeanServer.java:739)[:1.8.0_66]
      at org.opendaylight.controller.config.manager.impl.dynamicmbean.DynamicWritableWrapper.setAttribute(DynamicWritableWrapper.java:96)[131:org.opendaylight.controller.config-manager:0.5.0.SNAPSHOT]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:746)[:1.8.0_66]
      ... 41 more
      Caused by: java.lang.IllegalArgumentException: Null not supported
      at org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractBGPPeerModule.setAddPath(AbstractBGPPeerModule.java:282)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_66]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_66]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_66]
      at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_66]
      at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)[:1.8.0_66]
      at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_66]
      at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_66]
      at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeSetter(MBeanIntrospector.java:267)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.PerInterface.setAttribute(PerInterface.java:102)[:1.8.0_66]
      at com.sun.jmx.mbeanserver.MBeanSupport.setAttribute(MBeanSupport.java:230)[:1.8.0_66]
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:746)[:1.8.0_66]
      ... 44 more

      The system complains about missing (null) "add-path" attribute. The "add-path" is defined in odl-bgp-rib-rib-impl-cfg.yang as
      list add-path {
      key "type name";
      uses config:service-ref {
      refine type

      { config:required-identity add-path; }

      }
      }

      The input XML does not contain any entry with add-path dependency. When the same module is defined in initial config xml file - it works.

            andrej.mak@pantheon.tech Andrej Mak
            milos.fabian@pantheon.tech Milos Fabian
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: