[CONTROLLER-118] IllegalArgumentException thrown during flow update. Created: 17/Jan/14  Updated: 25/Jul/23  Resolved: 26/Jan/14

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

Type: Bug
Reporter: Deepthi V V Assignee: Tony Tkacik
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows
Platform: PC


Issue Links:
Blocks
is blocked by OPNFLWPLUG-15 Modifying a flow is not applying the ... Resolved
is blocked by YANGTOOLS-78 Node add by uses statement has a Conf... Resolved
External issue ID: 319
Priority: High

 Description   

Steps:
1. Add a flow with match = ipv4 destination and ethernet type and instructions = apply action with push pbb action. Flow gets added correctly.
2. Update the flow.

Commit operation for step 2 with IllegalArgumentException.
2014-01-16 15:25:18.744 IST [pool-21-thread-3] ERROR o.o.c.m.s.c.i.service.TwoPhaseCommit - Transaction: DOM-12
Request Commit failed
java.lang.IllegalArgumentException: Supplied composite node is not configurational.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.checkConfigurational(YangDataOperations.java
:51) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:30) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations._mergeMultiple(YangDataOperations.java:79) ~
[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeMultiple(YangDataOperations.java:209) ~
[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeContainer(YangDataOperations.java:183)
~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:42) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.mergeData(SchemaAwareDat
aStoreAdapter.java:159) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModificati
on.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:318) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModificati
on.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:289) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.AbstractDataModification.putConfigurationData(Abstrac
tDataModification.java:70) ~[bundlefile:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.prepareMergedTransaction
(SchemaAwareDataStoreAdapter.java:176) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.requestCommit(SchemaAwar
eDataStoreAdapter.java:115) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:76) [
bundlefile:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:31) [
bundlefile:na]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_21]
at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_21]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]

I tested the scenario using OpenflowpluginTestCommandProvider. The command "addMDFlow openflow:5 f10" when executed twice resulted in the above exception. The 2nd execution should have resulted in update operation.



 Comments   
Comment by Madhu Venugopal [ 25/Jan/14 ]

am hitting the same bug but in my case it is even failing for the first time flow install.

In my case, I have a set of 6 different flow rules that gets programmed one after annother. Except the first one, everything else fails with the following error(s) :

2014-01-24 16:15:05.181 PST [pool-22-thread-5] ERROR o.o.c.m.s.c.i.s.TwoPhaseCommit - Transaction: DOM-9 Request Commit failed
java.lang.IllegalArgumentException: Supplied composite node is not configurational.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.checkConfigurational(YangDataOperations.java:51) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:30) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations._mergeMultiple(YangDataOperations.java:79) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeMultiple(YangDataOperations.java:209) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeContainer(YangDataOperations.java:183) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:42) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.mergeData(SchemaAwareDataStoreAdapter.java:159) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:318) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:289) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.AbstractDataModification.putConfigurationData(AbstractDataModification.java:70) ~[bundlefile:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.prepareMergedTransaction(SchemaAwareDataStoreAdapter.java:176) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.requestCommit(SchemaAwareDataStoreAdapter.java:115) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:76) [bundlefile:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:31) [bundlefile:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_40]
at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
2014-01-24 16:15:05.197 PST [md-sal-binding-notification-4] DEBUG o.o.o.n.p.OF13ProviderManager - Transaction Status COMMITED for Flow LocalMac_1002_1_fa:16:3e:af:39:6c
2014-01-24 16:15:05.197 PST [md-sal-binding-notification-4] DEBUG o.o.o.n.p.OF13ProviderManager - createInPortMatch() Node Connector ID is - Type=openflow: DPID=55328811814217 inPort=1
2014-01-24 16:15:05.207 PST [md-sal-binding-notification-1] INFO o.o.c.m.s.m.StatisticsUpdateCommiter - Flow was no present in data store, augmenting statistics as an unaccounted flow
2014-01-24 16:15:05.207 PST [pool-22-thread-1] ERROR o.o.c.m.s.c.i.s.TwoPhaseCommit - Transaction: DOM-10 Request Commit failed
java.lang.IllegalArgumentException: Supplied composite node is not configurational.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.checkConfigurational(YangDataOperations.java:51) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:30) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations._mergeMultiple(YangDataOperations.java:79) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeMultiple(YangDataOperations.java:209) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeContainer(YangDataOperations.java:183) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:42) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.mergeData(SchemaAwareDataStoreAdapter.java:159) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:318) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:289) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.AbstractDataModification.putConfigurationData(AbstractDataModification.java:70) ~[bundlefile:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.prepareMergedTransaction(SchemaAwareDataStoreAdapter.java:176) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.requestCommit(SchemaAwareDataStoreAdapter.java:115) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:76) [bundlefile:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:31) [bundlefile:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_40]
at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]

2014-01-24 16:15:05.366 PST [md-sal-binding-notification-4] DEBUG o.o.o.n.p.OF13ProviderManager - Transaction Status COMMITED for Flow DropFilter_1
2014-01-24 16:15:05.366 PST [md-sal-binding-notification-4] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() Node Connector ID is - Type=openflow: DPID=55328811814217 inPort=1
2014-01-24 16:15:05.374 PST [pool-22-thread-3] ERROR o.o.c.m.s.c.i.s.TwoPhaseCommit - Transaction: DOM-12 Request Commit failed
java.lang.IllegalArgumentException: Supplied composite node is not configurational.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.checkConfigurational(YangDataOperations.java:51) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:30) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations._mergeMultiple(YangDataOperations.java:79) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeMultiple(YangDataOperations.java:209) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.mergeContainer(YangDataOperations.java:183) ~[na:na]
at org.opendaylight.yangtools.yang.util.YangDataOperations.merge(YangDataOperations.java:42) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.mergeData(SchemaAwareDataStoreAdapter.java:159) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:318) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter$NormalizedDataModification.mergeConfigurationData(SchemaAwareDataStoreAdapter.java:289) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.AbstractDataModification.putConfigurationData(AbstractDataModification.java:70) ~[bundlefile:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.prepareMergedTransaction(SchemaAwareDataStoreAdapter.java:176) ~[na:na]
at org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter.requestCommit(SchemaAwareDataStoreAdapter.java:115) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:76) [bundlefile:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:31) [bundlefile:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_40]
at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
2014-01-24 16:15:05.377 PST [md-sal-binding-notification-4] DEBUG o.o.o.n.p.OF13ProviderManager - Transaction Status COMMITED for Flow UcastOut_1002_1_fa:16:3e:af:39:6c

Comment by Tony Tkacik [ 25/Jan/14 ]

Should be fixed in https://git.opendaylight.org/gerrit/#/c/4734/

Comment by Tony Tkacik [ 26/Jan/14 ]

Fixed in master

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