[CONTROLLER-52] NPE throw in AbstractDataBroker.readOperationalData with Augmented Node Created: 18/Nov/13  Updated: 25/Jul/23  Resolved: 20/Nov/13

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Ed Warnicke Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS
Platform: PC


External issue ID: 148
Priority: Normal

 Description   

Root issue: In inventory-managers NodeChangeCommiter.onNodeUpdate we eventually
hit an NPE that is difficult to trace. I have traced it as far as a call to
AbstractDataBroker.readOperationalData... but at that point the debugger gets lost.

Note: This only happens when a FlowCapableNode is updated, not when a simple Node is updated.
Note: This happens whether the Node is being created or updated.

Stacktrace from debugger as far as it gets:
Thread [pool-16-thread-2] (Suspended (breakpoint at line 182 in AbstractDataModification))
DataTransactionImpl(AbstractDataModification<P,D>).hasOperationalOriginal(P) line: 182
DataTransactionImpl(AbstractDataModification<P,D>).putOperationalData(P, D) line: 77
DataTransactionImpl(AbstractDataModification<P,D>).putRuntimeData(P, D) line: 86
NodeChangeCommiter.onNodeUpdated(NodeUpdated) line: 104
NodeChangeCommiter$$Broker$ListenerInvoker.onNotification(Notification) line: not available
NotifyTask.call() line: 46
FutureTask$Sync.innerRun() line: 334
FutureTask<V>.run() line: 166
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145
ThreadPoolExecutor$Worker.run() line: 615
Thread.run() line: 724

path: [org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=openflow:1]]]]

Setup:

This was found using the distribution from openflowplugin/distributions/base
https://git.opendaylight.org/gerrit/#/c/2797/2

Using a controller built from:
Macintosh-3:controller hagbard$ git log -1
commit 8b84c5a210d5bf688fde0eb0db1b7f21f78a4f0b
Merge: b76ceb5 0533bdd
Author: Jason Ye <yisye@cisco.com>
Date: Sun Nov 17 19:45:23 2013 +0000

Breakpoints I've found useful:
AbstractDataBroker [line: 79] - readOperationalData(P)
AbstractDataModification [line: 182] - hasOperationalOriginal(P)
AbstractDataReadRouter [line: 37] - readOperationalData(P)
ConnectionConductorImpl [line: 196] - onMultipartReplyMessage(MultipartReplyMessage)
NodeChangeCommiter [line: 58] - onNodeConnectorUpdated(NodeConnectorUpdated)
NodeChangeCommiter [line: 104] - onNodeUpdated(NodeUpdated)
NotifyTask [line: 49] - call()
AbstractDataBroker.xtend [line: 56]
FlowCapableInventoryProvider.xtend [line: 96]
FlowCapableInventoryProvider.xtend [line: 109]



 Comments   
Comment by Tony Tkacik [ 20/Nov/13 ]

Implentation of offending component was updated ans fixed. Fix is merged in master.

Generated at Wed Feb 07 19:52:03 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.