Re: Sodium SR1 release candidate


Robert Varga
 

On 30/10/2019 17:48, Robert Varga wrote:
2019-10-16T16:44:44,433 | ERROR | jobcoordinator-main-task-6 | VpnSubnetRouteHandler | 385 - org.opendaylight.netvirt.vpnmanager-impl - 0.9.1 | SUBNETROUTE: onInterfaceUp: Unable to handle interface up event for port a8a7cd0e-337a-4540-8749-1372ce63f7b2 in subnet 65fe623a-5c49-45ce-a82a-673b7ff99199
java.lang.NullPointerException: null
at org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.onInterfaceUp(VpnSubnetRouteHandler.java:623) ~[?:?]
at org.opendaylight.netvirt.vpnmanager.SubnetRouteInterfaceStateChangeListener.lambda$add$0(SubnetRouteInterfaceStateChangeListener.java:115) ~[?:?]
at org.opendaylight.infrautils.utils.ClassLoaders.lambda$call$2(ClassLoaders.java:39) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.call(ClassLoaders.java:47) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.call(ClassLoaders.java:39) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.jobcoordinator.internal.JobCoordinatorImpl$MainTask.runWithUncheckedExceptionLogging(JobCoordinatorImpl.java:398) ~[?:?]
at org.opendaylight.infrautils.utils.concurrent.LoggingUncaughtThreadDeathContextRunnable.run(LoggingUncaughtThreadDeathContextRunnable.java:60) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.lambda$run$0(ClassLoaders.java:26) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.call(ClassLoaders.java:47) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.run(ClassLoaders.java:25) ~[293:org.opendaylight.infrautils.util:1.6.1]
at org.opendaylight.infrautils.utils.ClassLoaders.lambda$wrap$3(ClassLoaders.java:54) ~[293:org.opendaylight.infrautils.util:1.6.1]
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) [?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:?]
This one is:

SubnetOpDataEntryBuilder subOpBuilder = new
SubnetOpDataEntryBuilder(subnetOpDataEntry);

where subnetOpDataEntry is read from the datastore and then:

List<SubnetToDpn> subDpnList = subOpBuilder.getSubnetToDpn();
subDpnList.add(subDpn);

i.e. subDpnList is null, as it has become empty. There should be
nonnullSubnetToDpn() which will return non-null, but will cause .add()
to fail.

I *bet* there is a Magnesium patch which changes this code and that
patch needs to be backported, as it should deal with both nullability
and immutability.

This is pure technical debt which is being uncovered (for whatever
reason, it does not matter).

Regards,
Robert

Join integration-dev@lists.opendaylight.org to automatically receive all group messages.