Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIGRP on Cisco ASA - REQUEUEFAILURE #8962

Open
mthomati opened this issue Mar 1, 2024 · 4 comments
Open

EIGRP on Cisco ASA - REQUEUEFAILURE #8962

mthomati opened this issue Mar 1, 2024 · 4 comments

Comments

@mthomati
Copy link

mthomati commented Mar 1, 2024

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?

@dhalperi
Copy link
Member

dhalperi commented Mar 4, 2024

I wasn't able to run the example code you provided. Can you please use the bug report issue template?

@dhalperi
Copy link
Member

dhalperi commented Mar 4, 2024

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.

@mthomati
Copy link
Author

mthomati commented Mar 7, 2024

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}}


@dhalperi
Copy link
Member

dhalperi commented Mar 7, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants