Details
-
Bug
-
Status: Resolved
-
Resolution: Won't Do
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
5383
Description
feature:install odl-netconf-connector-all
then feature:install odl-bgpcep-bgp-all
and after the second feature:install finishes, odl-netconf-connector-all stops working.
Tested on latest Beryllium.
This problem might occur for any feature that deploys additional schemas upon installation in place of "odl-bgpcep-bgp-all" but that was not tested.
In the karaf.log (see attachment) the following suspicious exception happens after the schema change events (there were 2 found).
2016-02-18 15:15:58,470 | WARN | r - ConfigPusher | FeatureConfigPusher | 122 - config-persister-feature-adapter - 0.4.0.SNAPSHOT | Karaf featuresService.listInstalledFeatures() has thrown an exception, retry 0
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)[:1.7.0_67]
at java.util.HashMap$KeyIterator.next(Unknown Source)[:1.7.0_67]
at java.util.AbstractCollection.toArray(Unknown Source)[:1.7.0_67]
at org.apache.karaf.features.internal.FeaturesServiceImpl.listInstalledFeatures(FeaturesServiceImpl.java:788)[20:org.apache.karaf.features.core:3.0.3]
at Proxyadff952b_fc56_472f_92f2_a3993414b469.listInstalledFeatures(Unknown Source)[:]
at org.opendaylight.controller.configpusherfeature.internal.FeatureConfigPusher.isInstalled(FeatureConfigPusher.java:96)[122:config-persister-feature-adapter:0.4.0.SNAPSHOT]
at org.opendaylight.controller.configpusherfeature.internal.FeatureConfigPusher.pushConfig(FeatureConfigPusher.java:77)[122:config-persister-feature-adapter:0.4.0.SNAPSHOT]
at org.opendaylight.controller.configpusherfeature.internal.FeatureConfigPusher.pushConfigs(FeatureConfigPusher.java:67)[122:config-persister-feature-adapter:0.4.0.SNAPSHOT]
at org.opendaylight.controller.configpusherfeature.internal.ConfigPushingRunnable.processFeatureEvent(ConfigPushingRunnable.java:65)[122:config-persister-feature-adapter:0.4.0.SNAPSHOT]
at org.opendaylight.controller.configpusherfeature.internal.ConfigPushingRunnable.run(ConfigPushingRunnable.java:47)[122:config-persister-feature-adapter:0.4.0.SNAPSHOT]
at java.lang.Thread.run(Unknown Source)[:1.7.0_67]
The NETCONF-144 is related but this is not the case. I added "sleep 60" between the two feature:install commands and also between the ODL startup and the first feature:install command and the behavior persists. The log confirms there are significant time gaps between the feature:install commands and the rest of ODL activity so this is not caused by the second feature:install being executed concurrently with the odl-netconf-connector reconnect. But for odl-bgpcep-bgp-all the odl-netconf-connector reconnect happens twice so I am not entirely sure about this concurrency related argument.