[OPNFLWPLUG-379] openflow role switch message implementation Created: 12/Mar/15 Updated: 27/Sep/21 Resolved: 10/Nov/15 |
|
| Status: | Resolved |
| Project: | OpenFlowPlugin |
| Component/s: | General |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Anil Vishnoi | Assignee: | Anil Vishnoi |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| External issue ID: | 2827 |
| Priority: | Normal |
| Description |
|
Implement role switch message and provide initial logic to trigger the failover. To enable role switch message capability following task need to be done
This task implement all the required tooling that will be required to implement the controller failover mechanism. https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:Lithium_Release_Plan |
| Comments |
| Comment by Anil Vishnoi [ 12/Mar/15 ] |
| Comment by Ed Warnicke [ 12/Mar/15 ] |
|
https://git.opendaylight.org/gerrit/#/c/12644/ appears to be causing the following error: listener started and ready to accept incoming tcp/tls connections on port: 6633 java.lang.NullPointerException at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.ConfigurableOpenFlowProviderModule.canReuseInstance(ConfigurableOpenFlowProviderModule.java:63) at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.ConfigurableOpenFlowProviderModule.canReuseInstance(ConfigurableOpenFlowProviderModule.java:19) at org.opendaylight.controller.config.spi.AbstractModule.getInstance(AbstractModule.java:61) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$ModuleInvocationHandler.handleInvocation(DependencyResolverManager.java:149) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) at com.sun.proxy.$Proxy108.getInstance(Unknown Source) at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverImpl.resolveInstance(DependencyResolverImpl.java:160) at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.AbstractMsgSpyServiceModule.resolveDependencies(AbstractMsgSpyServiceModule.java:62) at org.opendaylight.controller.config.spi.AbstractModule.getInstance(AbstractModule.java:72) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$ModuleInvocationHandler.handleInvocation(DependencyResolverManager.java:149) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) at com.sun.proxy.$Proxy45.getInstance(Unknown Source) at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:399) at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:280) at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_67] at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_67] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_67] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_67] at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_67] at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_67] at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_67] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_67] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_67] at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_67] at com.sun.proxy.$Proxy42.commitConfig(Unknown Source)[181:org.opendaylight.controller.config-api:0.3.0.SNAPSHOT] at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[182:org.opendaylight.controller.config-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:138)[202:org.opendaylight.controller.config-netconf-connector:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:54)[202:org.opendaylight.controller.config-netconf-connector:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[200:org.opendaylight.controller.netconf-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:100)[200:org.opendaylight.controller.netconf-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:280)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:239)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:128)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:101)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:181)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at java.lang.Thread.run(Thread.java:745)[:1.7.0_67] 2015-03-12 16:31:45,957 | ERROR | config-pusher | ConfigRegistryImpl | 187 - org.opendaylight.controller.config-manager - 0.3.0.SNAPSHOT | Configuration Transaction failed on 2PC, server is unhealthy java.lang.IllegalStateException: Error - getInstance() failed for ModuleIdentifier{factoryName='msg-spy-service-impl', instanceName='msg-spy-service-impl'} in transaction TransactionIdentifier {name='ConfigTransaction-49-51'}at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:405) at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:280) at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_67] at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_67] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_67] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_67] at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_67] at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_67] at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_67] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_67] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_67] at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_67] at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_67] at com.sun.proxy.$Proxy42.commitConfig(Unknown Source)[181:org.opendaylight.controller.config-api:0.3.0.SNAPSHOT] at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[182:org.opendaylight.controller.config-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:138)[202:org.opendaylight.controller.config-netconf-connector:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:54)[202:org.opendaylight.controller.config-netconf-connector:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[200:org.opendaylight.controller.netconf-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:100)[200:org.opendaylight.controller.netconf-util:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:280)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:239)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:128)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:101)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:181)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at java.lang.Thread.run(Thread.java:745)[:1.7.0_67] Caused by: java.lang.NullPointerException at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.ConfigurableOpenFlowProviderModule.canReuseInstance(ConfigurableOpenFlowProviderModule.java:63) at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.ConfigurableOpenFlowProviderModule.canReuseInstance(ConfigurableOpenFlowProviderModule.java:19) at org.opendaylight.controller.config.spi.AbstractModule.getInstance(AbstractModule.java:61) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$ModuleInvocationHandler.handleInvocation(DependencyResolverManager.java:149) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) at com.sun.proxy.$Proxy108.getInstance(Unknown Source) at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverImpl.resolveInstance(DependencyResolverImpl.java:160) at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.AbstractMsgSpyServiceModule.resolveDependencies(AbstractMsgSpyServiceModule.java:62) at org.opendaylight.controller.config.spi.AbstractModule.getInstance(AbstractModule.java:72) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_67] at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$ModuleInvocationHandler.handleInvocation(DependencyResolverManager.java:149) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) at com.sun.proxy.$Proxy45.getInstance(Unknown Source) at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:399) ... 36 more 2015-03-12 16:31:45,966 | ERROR | config-pusher | UncaughtExceptionPolicy | 118 - org.opendaylight.controller.logging.bridge - 0.5.0.SNAPSHOT | Thread Thread[config-pusher,5,main] died because of an uncaught exception java.lang.IllegalStateException: Failed to send commit for configuration 43-msg-spy.xml(odl-ovsdb-openstack,odl-openflowplugin-southbound) at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:285)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:239)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:128)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:101)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:181)[205:org.opendaylight.controller.config-persister-impl:0.3.0.SNAPSHOT] at java.lang.Thread.run(Thread.java:745)[:1.7.0_67] Caused by: java.lang.IllegalStateException: Error - getInstance() failed for ModuleIdentifier{factoryName='msg-spy-service-impl', instanceName='msg-spy-service-impl'} in transaction TransactionIdentifier{name='ConfigTransaction-49-51'} at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:405) |
| Comment by Michal Rehak [ 16/Mar/15 ] |