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

CFE is not deleting route data even if future declarations omit the failoverRoutes section entirely #123

Closed
jcclive opened this issue Jul 28, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@jcclive
Copy link

jcclive commented Jul 28, 2023

Do you already have an issue opened with F5 support?

No

Description

Posting an inspect will error out if a previous declaration contained a route that was removed in a subsequent declaration. I am unable to inspect any future declarations. The scenario is we initially had an internal network with route update needs then decided against it. But, it seems CFE continues to list the Route.name, Route.nextHopIpAddress, and Route.addressPrefix for the routes declared in a previous declaration and is not deleting them if a future post omits the section.

To recreate, simply post a declaration with the failoverAddresses and failoverRoutes sections then post a declaration with only the failoverAddresses section. An inspect POST will not return data (200 OK, but empty body) and the following error will show in /var/log/restnoded/restnoded.log:

Fri, 28 Jul 2023 15:33:53 GMT - finest: [f5-cloud-failover] Discovering updates for route table removed
Fri, 28 Jul 2023 15:33:53 GMT - finest: [f5-cloud-failover] Route.name: removed
Fri, 28 Jul 2023 15:33:53 GMT - finest: [f5-cloud-failover] Route.nextHopIpAddress: removed
Fri, 28 Jul 2023 15:33:53 GMT - finest: [f5-cloud-failover] Route.addressPrefix: removed
Fri, 28 Jul 2023 15:33:53 GMT - warning: [f5-cloud-failover] expected tag: f5_self_ips does not exist on route table
Fri, 28 Jul 2023 15:33:53 GMT - severe: [f5-cloud-failover] failover.getFailoverStatusAndObjects() error: Cannot read property 'split' of undefined TypeError: Cannot read property 'split' of undefined
at Cloud._discoverNextHopAddress (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/abstract/cloud.js:167:75)
at routeTable.routes.forEach (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/azure/cloud.js:966:49)
at Array.forEach ()
at routeTables.forEach (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/azure/cloud.js:953:31)
at Array.forEach ()
at Cloud._discoverRoutesUsingNextHopAddress (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/azure/cloud.js:951:21)
at routeGroupDefinitions.forEach (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/azure/cloud.js:354:59)
at Array.forEach ()
at _getInstanceMetadata.then.then.then.then (/var/config/rest/iapps/f5-cloud-failover/nodejs/providers/azure/cloud.js:346:44)
at tryCatcher (/usr/share/rest/node/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._settlePromise (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:582:21)
at Promise._settlePromise0 (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._resolveCallback (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:454:14)
at Promise._settlePromiseFromHandler (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:524:17)
at Promise._settlePromise (/usr/share/rest/node/node_modules/bluebird/js/release/promise.js:569:18)

Environment information

  • Cloud Failover Extension Version:
    "version": "1.14.0",
    "release": "0",
    "schemaCurrent": "1.14.0",
    "schemaMinimum": "0.9.1"
  • BIG-IP version:
    15.1.8.2
  • Cloud provider:
    Azure

Severity Level

For bugs, enter the bug severity level. Do not set any labels.

Severity: 3

@mikeshimkus
Copy link
Contributor

Thanks for reporting. We are tracking this with internal issue EC-296.

@shyawnkarim shyawnkarim added the bug Something isn't working label Aug 2, 2023
@shyawnkarim shyawnkarim added this to the backlog milestone Aug 2, 2023
@mikeshimkus
Copy link
Contributor

@jcclive For now, you can work around this by including the failoverRoutes section but disabling it: https://clouddocs.f5.com/products/extensions/f5-cloud-failover/latest/userguide/configuration.html?highlight=enabled#failover-routes

"failoverRoutes": { "enabled": false, "scopingTags": { "f5_cloud_failover_label": "mydeployment" }, "scopingAddressRanges": [ { "range": "192.168.1.0/24" }, { "range": "192.168.1.1/24" } ], "defaultNextHopAddresses": { "discoveryType": "routetag" } }

@shyawnkarim
Copy link

Closing. This issue was resolved with Release 1.15.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants