[gbsyncd] Graceful shutdown of syncd process in container gbsyncd (#16812)
Fix #16608. Need to gracefully shutdown syncd/gbsyncd individually.
This commit is contained in:
parent
90dc254656
commit
048f2a7c39
@ -19,7 +19,32 @@ function waitplatform() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function stopplatform1() {
|
function stopplatform1() {
|
||||||
:
|
# Invoke platform specific pre shutdown routine.
|
||||||
|
PLATFORM=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' platform`
|
||||||
|
PLATFORM_PRE_SHUTDOWN="/usr/share/sonic/device/$PLATFORM/plugins/gbsyncd_request_pre_shutdown"
|
||||||
|
[ -f $PLATFORM_PRE_SHUTDOWN ] && \
|
||||||
|
/usr/bin/docker exec -i gbsyncd$DEV /usr/share/sonic/platform/plugins/gbsyncd_request_pre_shutdown --${TYPE}
|
||||||
|
|
||||||
|
debug "${TYPE} shutdown syncd process in container gbsyncd$DEV ..."
|
||||||
|
/usr/bin/docker exec -i gbsyncd$DEV /usr/bin/syncd_request_shutdown -g 1 -x /usr/share/sonic/hwsku/context_config.json --${TYPE}
|
||||||
|
|
||||||
|
# wait until syncd quits gracefully or force syncd to exit after
|
||||||
|
# waiting for 20 seconds
|
||||||
|
start_in_secs=${SECONDS}
|
||||||
|
end_in_secs=${SECONDS}
|
||||||
|
timer_threshold=20
|
||||||
|
while docker top gbsyncd$DEV | grep -q /usr/bin/syncd \
|
||||||
|
&& [[ $((end_in_secs - start_in_secs)) -le $timer_threshold ]]; do
|
||||||
|
sleep 0.1
|
||||||
|
end_in_secs=${SECONDS}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $((end_in_secs - start_in_secs)) -gt $timer_threshold ]]; then
|
||||||
|
debug "syncd process in container gbsyncd$DEV did not exit gracefully"
|
||||||
|
fi
|
||||||
|
|
||||||
|
/usr/bin/docker exec -i gbsyncd$DEV /bin/sync
|
||||||
|
debug "Finished ${TYPE} shutdown syncd process in container gbsyncd$DEV ..."
|
||||||
}
|
}
|
||||||
|
|
||||||
function stopplatform2() {
|
function stopplatform2() {
|
||||||
|
Loading…
Reference in New Issue
Block a user