[action] [PR:15080] Re-add 127.0.0.1/8 when bringing down the interfaces #15454
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I did it
With #5353, 127.0.0.1/16 was added to the lo interface, and then 127.0.0.1/8 was removed. However, when bringing down the lo interface, like during a config reload, 127.0.0.1/16 gets removed, but 127.0.0.1/8 isn't added back to the interface. This means that there's a period of time where 127.0.0.1 is not available at all, and services that need to connect to 127.0.0.1 (such as for redis DB) will fail.
Fixes #15117.
Fixes #14880.
Work item tracking
How I did it
To fix this, when going down, add 127.0.0.1/8. Add this address before the existing configuration gets removed, so that 127.0.0.1 is available at all times.
Note that running
ifdown lo
doesn't actually bring down the loopback interface; the interface always stays "physically" up.How to verify it
On a virtual switch,
config reload
was run for 8 times, and thedocker-wait-any
process for theswss
container correctly monitored bothsyncd
andteamd
. On my setup, prior to this change, there was at least a 50% chance where duringswss
startup,sonic-db-cli
would fail, andteamd
would not get monitored bydocker-wait-any
:Which release branch to backport (provide reason below if selected)
Tested branch (Please provide the tested image version)
Description for the changelog
Link to config_db schema for YANG module changes
A picture of a cute animal (not mandatory but encouraged)