Skip to content

Commit 1d4c2c7

Browse files
committed
[teamd]: wait for swss db flush done before starting teamd container
Signed-off-by: Jipan Yang <[email protected]>
1 parent 0fd4f18 commit 1d4c2c7

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

files/build_templates/docker_image_ctl.j2

+20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
#!/bin/bash
22

3+
DEBUGLOG="/tmp/{{ docker_container_name }}_debug.log"
4+
5+
function debug()
6+
{
7+
/usr/bin/logger $1
8+
/bin/echo `date` "- $1" >> ${DEBUGLOG}
9+
}
10+
11+
function wait_for_swss_db_flush_done()
12+
{
13+
debug "Start waiting for swss"
14+
until [[ $(redis-cli -n 0 GET "SWSS_DB_FLUSH_DONE") ]]; do
15+
debug "Wait 1 second for SWSS_DB_FLUSH_DONE"
16+
sleep 1
17+
done
18+
debug "Swss db flush done"
19+
}
20+
321
function getMountPoint()
422
{
523
echo $1 | python -c "import sys, json, os; mnts = [x for x in json.load(sys.stdin)[0]['Mounts'] if x['Destination'] == '/usr/share/sonic/hwsku']; print '' if len(mnts) == 0 else os.path.basename(mnts[0]['Source'])" 2>/dev/null
@@ -36,6 +54,8 @@ function preStartAction()
3654
echo -n > /tmp/dump.rdb
3755
docker cp /tmp/dump.rdb database:/var/lib/redis/
3856
fi
57+
{%- elif docker_container_name == "teamd" %}
58+
wait_for_swss_db_flush_done
3959
{%- else %}
4060
: # nothing
4161
{%- endif %}

files/scripts/swss.sh

+1
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ start() {
9797
/usr/bin/docker exec database redis-cli -n 2 FLUSHDB
9898
/usr/bin/docker exec database redis-cli -n 5 FLUSHDB
9999
clean_up_tables 6 "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*'"
100+
/usr/bin/docker exec database redis-cli -n 0 SET "SWSS_DB_FLUSH_DONE" "1"
100101
fi
101102

102103
# start service docker

0 commit comments

Comments
 (0)