EIGRP on Cisco ASA - REQUEUEFAILURE
mthomati opened this issue · comments
I encountered the following error when running a routing related question layer3Edges
against a Cisco ASA config located in my snapshot.
status: REQUEUEFAILURE
.... 2024-02-22 11:22:44.684000-06:00 Couldn't requeue after unblocking.
Cannot queue dataplane dependent work for fe0edfb9-c7b9-450b-a02a-ce44c1e6038d: Status is DATAPLANING_FAIL but no incomplete dataplaning work exists.Work finished with status REQUEUEFAILURE
work_item: {"containerName": "sww-ama-network", "id": "b06b4b54-d7c0-4351-8e80-c8c889566803", "requestParams": {"answer": "", "questionname": "__layer3Edges_e44dd22a-102f-437e-82f5-5b793975e1d6", "testrig": "sww-ama-lab"}, "testrigName": "sww-ama-lab"}
task_details: {'args': None, 'batches': [{'completed': 0, 'description': "Couldn't requeue after unblocking.\nCannot queue dataplane dependent work for fe0edfb9-c7b9-450b-a02a-ce44c1e6038d: Status is DATAPLANING_FAIL but no incomplete dataplaning work exists", 'size': 0, 'startDate': '2024-02-22T17:22:44.684+00:00'}], 'errMessage': None, 'obtained': '2024-02-22T17:22:44.684+00:00', 'status': 'RequeueFailure', 'terminated': None}
However, when I remove the EIGRP configuration from the ASA:
router eigrp 90
network 10.1.4.0 255.255.254.0
network 192.168.227.64 255.255.255.192
network 192.168.231.64 255.255.255.192
network 10.1.94.72 255.255.255.248
network 192.168.231.208 255.255.255.248
passive-interface DMZ
passive-interface DMZ2
redistribute static metric 100000 100 1 255 1500 route-map STATIC-2-EIGRP
Batfish is able to parse the config for any routing related questions such as layer3Edges
. The issue is with that EIGRP config and Batfish unable to parse it correctly. Please help?
I wasn't able to run the example code you provided. Can you please use the bug report issue template?
The other thing you might try for debugging dataplane issues is running bf.generate_dataplane()
separately and getting back info in the stack trace there.
Hi, I can post a bug report if that is better to put this output, below is the output generated from bf_generate_dataplane
:
Work terminated abnormally
work_item: {"containerName": "sww-ama-demo-network", "id": "aada67b8-ed3a-46a8-8fc7-220e1eedfc03", "requestParams": {"dp": "", "testrig": "sww-ama-demo-lab"}, "testrigName": "sww-ama-demo-lab"}
log: Loading configurations for NetworkSnapshot{network=3fe99444-f884-41e5-a864-001e87fab09a, snapshot=d0c1b6a4-8c57-4fc1-9706-6ef0455d8818}
Loading configurations for NetworkSnapshot{network=3fe99444-f884-41e5-a864-001e87fab09a, snapshot=d0c1b6a4-8c57-4fc1-9706-6ef0455d8818}
Loading configurations for NetworkSnapshot{network=3fe99444-f884-41e5-a864-001e87fab09a, snapshot=d0c1b6a4-8c57-4fc1-9706-6ef0455d8818}
Loading configurations for NetworkSnapshot{network=3fe99444-f884-41e5-a864-001e87fab09a, snapshot=d0c1b6a4-8c57-4fc1-9706-6ef0455d8818}
Exception in container:3fe99444-f884-41e5-a864-001e87fab09a, testrig:d0c1b6a4-8c57-4fc1-9706-6ef0455d8818; exception:java.lang.ArithmeticException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:678)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:737)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:661)
at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeDependentRoutesIteration(IncrementalBdpEngine.java:659)
at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeNonMonotonicPortionOfDataPlane(IncrementalBdpEngine.java:861)
at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeDataPlane(IncrementalBdpEngine.java:336)
at org.batfish.dataplane.ibdp.IncrementalDataPlanePlugin.computeDataPlane(IncrementalDataPlanePlugin.java:51)
at org.batfish.main.Batfish.computeDataPlane(Batfish.java:716)
at org.batfish.main.Batfish.run(Batfish.java:2063)
at org.batfish.main.Driver.lambda$runBatfish$0(Driver.java:155)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ArithmeticException: / by zero
at org.batfish.datamodel.eigrp.ClassicMetric.costV1(ClassicMetric.java:92)
at org.batfish.datamodel.eigrp.ClassicMetric.cost(ClassicMetric.java:82)
at org.batfish.datamodel.EigrpRoute.getCompositeCost(EigrpRoute.java:46)
at java.base/java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469)
at java.base/java.util.Comparator.lambda$thenComparing$36697e65$1(Comparator.java:216)
at org.batfish.dataplane.rib.EigrpInternalRib.comparePreference(EigrpInternalRib.java:21)
at org.batfish.dataplane.rib.EigrpInternalRib.comparePreference(EigrpInternalRib.java:8)
at org.batfish.dataplane.rib.RibTree.mergeRoute(RibTree.java:166)
at org.batfish.dataplane.rib.AbstractRib.mergeRouteGetDelta(AbstractRib.java:215)
at org.batfish.dataplane.ibdp.EigrpRoutingProcess.processInternalRoutesFromNeighbor(EigrpRoutingProcess.java:317)
at org.batfish.dataplane.ibdp.EigrpRoutingProcess.lambda$processInternalRoutes$2(EigrpRoutingProcess.java:288)
at com.google.common.collect.ImmutableSortedMap.forEach(ImmutableSortedMap.java:788)
at org.batfish.dataplane.ibdp.EigrpRoutingProcess.processInternalRoutes(EigrpRoutingProcess.java:287)
at org.batfish.dataplane.ibdp.EigrpRoutingProcess.executeIteration(EigrpRoutingProcess.java:174)
at org.batfish.dataplane.ibdp.VirtualRouter.lambda$eigrpIteration$37(VirtualRouter.java:1583)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.batfish.dataplane.ibdp.VirtualRouter.eigrpIteration(VirtualRouter.java:1583)
at org.batfish.dataplane.ibdp.IncrementalBdpEngine.lambda$computeDependentRoutesIteration$10(IncrementalBdpEngine.java:659)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
{"answerElements":[{"class":"org.batfish.common.BatfishException$BatfishStackTrace","answer":["org.batfish.common.BatfishException: Batfish job failed"," at org.batfish.main.Driver.lambda$runBatfish$0(Driver.java:195)"," at java.base/java.lang.Thread.run(Thread.java:829)","Caused by: java.lang.ArithmeticException"," at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)"," at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)"," at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)"," at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)"," at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)"," at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:678)"," at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:737)"," at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)"," at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)"," at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)"," at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)"," at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:661)"," at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeDependentRoutesIteration(IncrementalBdpEngine.java:659)"," at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeNonMonotonicPortionOfDataPlane(IncrementalBdpEngine.java:861)"," at org.batfish.dataplane.ibdp.IncrementalBdpEngine.computeDataPlane(IncrementalBdpEngine.java:336)"," at org.batfish.dataplane.ibdp.IncrementalDataPlanePlugin.computeDataPlane(IncrementalDataPlanePlugin.java:51)"," at org.batfish.main.Batfish.computeDataPlane(Batfish.java:716)"," at org.batfish.main.Batfish.run(Batfish.java:2063)"," at org.batfish.main.Driver.lambda$runBatfish$0(Driver.java:155)"," ... 1 more","Caused by: java.lang.ArithmeticException: / by zero"," at org.batfish.datamodel.eigrp.ClassicMetric.costV1(ClassicMetric.java:92)"," at org.batfish.datamodel.eigrp.ClassicMetric.cost(ClassicMetric.java:82)"," at org.batfish.datamodel.EigrpRoute.getCompositeCost(EigrpRoute.java:46)"," at java.base/java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469)"," at java.base/java.util.Comparator.lambda$thenComparing$36697e65$1(Comparator.java:216)"," at org.batfish.dataplane.rib.EigrpInternalRib.comparePreference(EigrpInternalRib.java:21)"," at org.batfish.dataplane.rib.EigrpInternalRib.comparePreference(EigrpInternalRib.java:8)"," at org.batfish.dataplane.rib.RibTree.mergeRoute(RibTree.java:166)"," at org.batfish.dataplane.rib.AbstractRib.mergeRouteGetDelta(AbstractRib.java:215)"," at org.batfish.dataplane.ibdp.EigrpRoutingProcess.processInternalRoutesFromNeighbor(EigrpRoutingProcess.java:317)"," at org.batfish.dataplane.ibdp.EigrpRoutingProcess.lambda$processInternalRoutes$2(EigrpRoutingProcess.java:288)"," at com.google.common.collect.ImmutableSortedMap.forEach(ImmutableSortedMap.java:788)"," at org.batfish.dataplane.ibdp.EigrpRoutingProcess.processInternalRoutes(EigrpRoutingProcess.java:287)"," at org.batfish.dataplane.ibdp.EigrpRoutingProcess.executeIteration(EigrpRoutingProcess.java:174)"," at org.batfish.dataplane.ibdp.VirtualRouter.lambda$eigrpIteration$37(VirtualRouter.java:1583)"," at java.base/java.lang.Iterable.forEach(Iterable.java:75)"," at org.batfish.dataplane.ibdp.VirtualRouter.eigrpIteration(VirtualRouter.java:1583)"," at org.batfish.dataplane.ibdp.IncrementalBdpEngine.lambda$computeDependentRoutesIteration$10(IncrementalBdpEngine.java:659)"," at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)"," at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)"," at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)"," at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)"," at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)"," at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)"," at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)"," at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)"," at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)"," at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)",""]}],"status":"FAILURE","summary":{"numFailed":0,"numPassed":0,"numResults":0}}
Yeah I think we need a runnable repro. The stack trace helps, but it makes it look like interface BW is being treated as zero. need more data for that.