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

[202205][submodule] Fast reboot finalizer 202205 #14143

Merged

Conversation

arfeigin
Copy link
Contributor

@arfeigin arfeigin commented Mar 7, 2023

Dedicated PR for 202205 branch similar to #14238 (#13484) as part of fast-reboot finalizer implementation.

This PR should come along with sonic-utilities PRs (sonic-net/sonic-utilities#2724 - already merged and sonic-net/sonic-utilities#2733) removing the timer usage from fast-reboot script, and as well with advancing sonic-sairedis pointer to point merged sonic-net/sonic-sairedis#1217.

It will be followed by:
sonic-net/sonic-platform-daemons#343
sonic-net/sonic-sairedis#1217

This set of PRs solves the issue #13251

Why I did it
To solve an issue with upgrade with fast-reboot including FW upgrade which has been introduced since moving to fast-reboot over warm-reboot infrastructure.
As well, this introduces fast-reboot finalizing logic to determine fast-reboot is done.

How I did it
Added logic to finalize-warmboot script to handle fast-reboot as well, this makes sense as using fast-reboot over warm-reboot this script will be invoked. The script will clear fast-reboot entry from state-db instead of previous implementation that relied on timer. The timer could expire in some scenarios between fast-reboot finished causing fallback to cold-reboot and possible crashes.

As well this PR updates all services/scripts reading fast-reboot state-db entry to look for the updated value representing fast-reboot is active.

How to verify it
Run fast-reboot and check that fast-reboot entry exists in state-db right after startup and being cleared as warm-reboot is finalized and not due to a timer.

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205
  • 202211

Description for the changelog

Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU.

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

@arfeigin
Copy link
Contributor Author

arfeigin commented Mar 8, 2023

/azpw run

@mssonicbld
Copy link
Collaborator

/AzurePipelines run

@azure-pipelines
Copy link

You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@arfeigin
Copy link
Contributor Author

arfeigin commented Mar 8, 2023

/azpw run Azure.sonic-buildimage

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-buildimage

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

@vaibhavhd vaibhavhd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments same as #14150.

LGTM, otherwise.

@arfeigin arfeigin changed the title Fast reboot finalizer 202205 internal [202205] Fast reboot finalizer 202205 internal Mar 9, 2023
vaibhavhd pushed a commit to sonic-net/sonic-sairedis that referenced this pull request Mar 10, 2023
Dedicated PR for 202205 branch similar to #1213 as part of fast-reboot finalizer implementation.

Update syncd_init_common to check if fast-reboot is enabled according to the new value for FAST_REBOOT entry in STATE_DB.

This PR should come along with the following PRs:
sonic-net/sonic-utilities#2724
sonic-net/sonic-platform-daemons#343
sonic-net/sonic-buildimage#14143

This set of PRs solves the issue sonic-net/sonic-buildimage#13251
vaibhavhd pushed a commit to sonic-net/sonic-utilities that referenced this pull request Mar 10, 2023
…er (#2724)

Dedicated PR for 202205 branch similar to #2621 as part of fast-reboot finalizer implementation.

This should come along with sonic-buildimage PR implementing fast-reboot finalizing logic in finalize-warmboot script and other submodules PRs utilizing the change.

This PR should come along with the following PRs as well:
sonic-net/sonic-sairedis#1217
sonic-net/sonic-platform-daemons#343
sonic-net/sonic-buildimage#14143

This set of PRs solves the issue sonic-net/sonic-buildimage#13251

What I did
Remove the timer used to clear fast-reboot entry from state-db, instead it will be cleared by fast-reboot finalize function implemented inside finalize-warmboot script (which will be invoked since fast-reboot is using warm-reboot infrastructure).

As well instead of having "1" as the value for fast-reboot entry in state-db and deleting it when done it is now modified to set enable/disable according to the context.

As well all scripts reading this entry should be modified to the new value options.

How I did it
Removed the timer usage in the fast-reboot script and adding fast-reboot finalize logic to warm-reboot in the linked PR.
Use "enable: true/false" instead of "1" as the entry value.

How to verify it
Run fast-reboot and check that the state-db entry for fast-reboot is being deleted after finalizing fast-reboot and not by an expiring timer.
@arfeigin arfeigin force-pushed the fast-reboot-finalizer_202205-internal branch from e1b5cd7 to f385ba8 Compare March 14, 2023 10:05
@arfeigin arfeigin changed the title [202205] Fast reboot finalizer 202205 internal [202205] Fast reboot finalizer 202205 Mar 14, 2023
@arfeigin arfeigin requested a review from vaibhavhd March 14, 2023 13:01
@arfeigin arfeigin force-pushed the fast-reboot-finalizer_202205-internal branch from bef2a18 to 9f72383 Compare March 15, 2023 10:28
@yxieca yxieca merged commit 4a3c5e4 into sonic-net:202205 Mar 15, 2023
@vaibhavhd
Copy link
Contributor

Please also rename the PR title to reflect that this is also a submodule advance PR.

@arfeigin arfeigin changed the title [202205] Fast reboot finalizer 202205 [202205][submodule] Fast reboot finalizer 202205 Mar 16, 2023
vaibhavhd pushed a commit to sonic-net/sonic-platform-daemons that referenced this pull request Mar 16, 2023
This PR is similar to #335, dedicated to 202205 branch.

Update xcvrd to check if fast-reboot is enabled according to the new value for FAST_REBOOT entry in STATE_DB.

This PR should come along with the following PRs:
sonic-net/sonic-buildimage#14143
sonic-net/sonic-sairedis#1217
sonic-net/sonic-utilities#2724

This set of PRs solves the issue sonic-net/sonic-buildimage#13251

Description
Update xcvrd to check the updated form of fast-reboot entry in state-db as it was changed.

Motivation and Context
Introducing fast-reboot finalizer on top of warmboot-finalizer, fast-reboot entry in STATE_DB is now changed from "1"/None to "enable: true/false".

How Has This Been Tested?
Existing tests, and fast-reboot.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants