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

Restconf PUT to config modules with incomplete fields returns status code 500.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • None
    • Post-Helium
    • restconf
    • None
    • Operating System: All
      Platform: All

    • 3210

      When doing PUT but using the POST data from https://wiki.opendaylight.org/view/BGP_LS_PCEP:TCP_MD5_Guide#PCEP_2
      karaf.log correctly complains about missing fields:

      2015-05-13 17:03:29,312 | WARN | entLoopGroup-2-2 | EditConfig | 107 - org.opendaylight.controller.config-netconf-connector - 0.3.0.SNAPSHOT | Test phase for edit-config failed
      org.opendaylight.controller.config.api.ValidationException: {pcep-dispatcher-impl={global-pcep-dispatcher=WorkerGroup is null, expected dependency implementing interface org.opendaylight.controller.config.yang.netty.EventLoopGroupServiceInterface}}

      The bug is that somewhere in restconf, this error fails to get mapped into something readable, resulting in response with empty text and code 500.

      I think this is the crucial error:

      2015-05-13 17:03:29,334 | ERROR | qtp210988355-77 | ContainerResponse | 236 - com.sun.jersey.jersey-server - 1.17.0 | The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
      java.lang.RuntimeException: RemoteDevice

      {controller-config}: Error while putting: (candidate)/(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)modules/module/module[{(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)type=(urn:opendaylight:params:xml:ns:yang:controller:pcep:impl?revision=2013-06-27)pcep-dispatcher-impl, (urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)name=global-pcep-dispatcher}]
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.WriteCandidateTx.handleEditException(WriteCandidateTx.java:119)
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.AbstractWriteTx.put(AbstractWriteTx.java:97)
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.ReadWriteTx.put(ReadWriteTx.java:46)
      at org.opendaylight.controller.sal.restconf.impl.BrokerFacade.putDataViaTransaction(BrokerFacade.java:253)[283:org.opendaylight.controller.sal-rest-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.restconf.impl.BrokerFacade.commitConfigurationDataPut(BrokerFacade.java:118)[283:org.opendaylight.controller.sal-rest-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.restconf.impl.RestconfImpl.updateConfigurationData(RestconfImpl.java:696)[283:org.opendaylight.controller.sal-rest-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.restconf.impl.StatisticsRestconfServiceWrapper.updateConfigurationData(StatisticsRestconfServiceWrapper.java:133)[283:org.opendaylight.controller.sal-rest-connector:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.sal.rest.impl.RestconfCompositeWrapper.updateConfigurationData(RestconfCompositeWrapper.java:74)[283:org.opendaylight.controller.sal-rest-connector:1.2.0.SNAPSHOT]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_75]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_75]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_75]
      at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_75]
      at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)[236:com.sun.jersey.jersey-server:1.17.0]
      at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)[234:com.sun.jersey.servlet:1.17.0]
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)[234:com.sun.jersey.servlet:1.17.0]
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)[234:com.sun.jersey.servlet:1.17.0]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[202:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)[217:org.ops4j.pax.web.pax-web-jetty:3.1.4]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)[217:org.ops4j.pax.web.pax-web-jetty:3.1.4]
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)[217:org.ops4j.pax.web.pax-web-jetty:3.1.4]
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.Server.handle(Server.java:370)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[208:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
      at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
      Caused by: NetconfDocumentedException{message=RemoteDevice{controller-config}

      : Edit candidate failed: [RpcError [message=Test phase: {pcep-dispatcher-impl={global-pcep-dispatcher=WorkerGroup is null, expected dependency implementing interface org.opendaylight.controller.config.yang.netty.EventLoopGroupServiceInterface}}, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=<operation_failed>{pcep-dispatcher-impl={global-pcep-dispatcher=WorkerGroup is null, expected dependency implementing interface org.opendaylight.controller.config.yang.netty.EventLoopGroupServiceInterface}}</operation_failed>, cause=null]], errorType=application, errorTag=operation_failed, errorSeverity=warning, errorInfo={}}
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.AbstractWriteTx.invokeBlocking(AbstractWriteTx.java:57)
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.WriteCandidateTx.editConfig(WriteCandidateTx.java:185)
      at org.opendaylight.controller.sal.connect.netconf.sal.tx.AbstractWriteTx.put(AbstractWriteTx.java:94)
      ... 56 more

            Unassigned Unassigned
            vrpolak Vratko Polak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: