0b83639068
Cherypick of #15685 MSFT ADO: 24274591 Why I did it Two changes: 1 Fix a day1 issue, where check to wait until CONFIG_DB_INITIALIZED is incorrect. There are multiple places where same incorrect logic is used. Current logic (until [[ $($SONIC_DB_CLI CONFIG_DB GET "CONFIG_DB_INITIALIZED") ]];) will always result in pass, irrespective of the result of GET operation. root@str2-7060cx-32s-29:~# sonic-db-cli CONFIG_DB GET "CONFIG_DB_INITIALIZED" 1 root@str2-7060cx-32s-29:~# until [[ $(sonic-db-cli CONFIG_DB GET "CONFIG_DB_INITIALIZED") ]]; do echo "entered here"; done root@str2-7060cx-32s-29:~# root@str2-7060cx-32s-29:~# root@str2-7060cx-32s-29:~# sonic-db-cli CONFIG_DB GET "CONFIG_DB_INITIALIZED" 0 root@str2-7060cx-32s-29:~# until [[ $(sonic-db-cli CONFIG_DB GET "CONFIG_DB_INITIALIZED") ]]; do echo "entered here"; done root@str2-7060cx-32s-29:~# Fix this logic by checking for value of flag to be "1". root@str2-7060cx-32s-29:~# until [[ $(sonic-db-cli CONFIG_DB GET "CONFIG_DB_INITIALIZED") -eq 1 ]]; do echo "entered here"; done entered here entered here entered here This gap in logic was highlighted when another fix was merged: #14933 The issue being fixed here caused warmboot-finalizer to not wait until config-db is initialized. 2 Set and unset CONFIG_DB_INITIALIZED for warm-reboot case Currently, during warm shutdown CONFIG_DB_INITIALIZED's value is stored in redis db backup. This is restored back when the dump is loaded during warm-recovery. So the value of CONFIG_DB_INITIALIZED does not depend on config db's state, however it remain what it was before reboot. Fix this by setting CONFIG_DB_INITIALIZED to 0 as when the DB is loaded, and set it to 1 after db_migrator is done. Work item tracking Microsoft ADO (number only): How I did it How to verify it |
||
---|---|---|
.. | ||
per_namespace | ||
share_image | ||
arp_update_vars.j2 | ||
backend_acl.j2 | ||
buffers_config.j2 | ||
build_docker_cache.j2 | ||
cbf_config.j2 | ||
config-chassisdb.service.j2 | ||
config-setup.service.j2 | ||
database.service.j2 | ||
dhcp_relay.service.j2 | ||
docker_image_ctl.j2 | ||
dockerd_regex.json | ||
eventd.service.j2 | ||
events_info.json | ||
iccpd.service.j2 | ||
init_cfg.json.j2 | ||
kernel_regex.json | ||
kube_cni.10-flannel.conflist | ||
lldp.service.j2 | ||
lldp.timer.j2 | ||
manifest.json.j2 | ||
mgmt-framework.service.j2 | ||
monit_regex.json | ||
mux.service.j2 | ||
nat.service.j2 | ||
organization_extensions.sh | ||
p4rt.service.j2 | ||
packages.json.j2 | ||
pde.service.j2 | ||
pmon.service.j2 | ||
qos_config.j2 | ||
radv.service.j2 | ||
restapi.service.j2 | ||
rsyslog_plugin.conf.j2 | ||
seu_regex.json | ||
sflow.service.j2 | ||
snmp.service.j2 | ||
sonic_debian_extension.j2 | ||
sonic_version.yml.j2 | ||
sonic.target | ||
sshd_regex.json | ||
swss_vars.j2 | ||
syncd_regex.json | ||
systemd_regex.json | ||
tacacs-config.service | ||
tacacs-config.timer | ||
telemetry.service.j2 | ||
updategraph.service.j2 |