[BGPCEP-813] Issue in calculation and roll-over of neighbor uptime value in BGP operational stats Created: 17/Jul/18  Updated: 13/Sep/18  Resolved: 13/Sep/18

Status: Verified
Project: bgpcep
Component/s: None
Affects Version/s: Fluorine, Nitrogen, Carbon, Oxygen
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Ajay Lele Assignee: Ajay Lele
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Below exceptions are seen in long-lived BGP sessions. Two issues here:

  1. Neighbor uptime should be in time-ticks (hundredth of second), but millisecond is being used. This causes the value to roll-over faster
  2. When max value is reached, it should roll-over and start from 0

 

2018-07-15 16:17:15,781 | WARN  | ventExecutor-1-1 | StateProviderImpl                | 361 - org.opendaylight.bgpcep.bgp-openconfig-state - 0.7.1.Carbon | Failed to update BGP Stats
java.lang.IllegalArgumentException: Invalid range: 5112335470, expected: [[0‥4294967295]].
                at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Timeticks.check_valueRange(Timeticks.java:27)[103:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.10_1-Carbon]
                at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Timeticks.<init>(Timeticks.java:33)[103:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.10_1-Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildTimer(NeighborUtil.java:167)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildNeighbor(NeighborUtil.java:123)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.lambda$buildNeighbors$0(NeighborUtil.java:107)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_161]
                at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)[:1.8.0_161]
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_161]
                at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_161]
                at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)[:1.8.0_161]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildNeighbors(NeighborUtil.java:108)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.storeOperationalState(StateProviderImpl.java:139)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.lambda$updateBGPStats$1(StateProviderImpl.java:124)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.lang.Iterable.forEach(Iterable.java:75)[:1.8.0_161]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.updateBGPStats(StateProviderImpl.java:120)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.access$100(StateProviderImpl.java:64)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl$1.run(StateProviderImpl.java:103)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_161]
                at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:126)[78:io.netty.common:4.1.8.Final]
                at io.netty.util.concurrent.GlobalEventExecutor$TaskRunner.run(GlobalEventExecutor.java:233)[78:io.netty.common:4.1.8.Final]
                at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[78:io.netty.common:4.1.8.Final]
                at java.lang.Thread.run(Thread.java:748)[:1.8.0_161]
2018-07-15 16:17:20,781 | WARN  | ventExecutor-1-1 | StateProviderImpl                | 361 - org.opendaylight.bgpcep.bgp-openconfig-state - 0.7.1.Carbon | Failed to update BGP Stats
java.lang.IllegalArgumentException: Invalid range: 5112340470, expected: [[0‥4294967295]].
                at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Timeticks.check_valueRange(Timeticks.java:27)[103:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.10_1-Carbon]
                at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Timeticks.<init>(Timeticks.java:33)[103:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.10_1-Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildTimer(NeighborUtil.java:167)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildNeighbor(NeighborUtil.java:123)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.lambda$buildNeighbors$0(NeighborUtil.java:107)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_161]
                at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)[:1.8.0_161]
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_161]
                at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)[:1.8.0_161]
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_161]
                at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)[:1.8.0_161]
                at org.opendaylight.protocol.bgp.state.NeighborUtil.buildNeighbors(NeighborUtil.java:108)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.storeOperationalState(StateProviderImpl.java:139)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.lambda$updateBGPStats$1(StateProviderImpl.java:124)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.lang.Iterable.forEach(Iterable.java:75)[:1.8.0_161]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.updateBGPStats(StateProviderImpl.java:120)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl.access$100(StateProviderImpl.java:64)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at org.opendaylight.protocol.bgp.state.StateProviderImpl$1.run(StateProviderImpl.java:103)[361:org.opendaylight.bgpcep.bgp-openconfig-state:0.7.1.Carbon]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_161]
                at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:126)[78:io.netty.common:4.1.8.Final]
                at io.netty.util.concurrent.GlobalEventExecutor$TaskRunner.run(GlobalEventExecutor.java:233)[78:io.netty.common:4.1.8.Final]
                at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[78:io.netty.common:4.1.8.Final]
                at java.lang.Thread.run(Thread.java:748)[:1.8.0_161]

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