Skip to content

Commit d884ff9

Browse files
authored
[syncd] Move logSet logGet under mutex to prevent race condition (sonic-net#1520) (sonic-net#1538)
[syncd] Move logSet logGet under mutex to prevent race condition
1 parent ec8b3c3 commit d884ff9

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

.azure-pipelines/test-docker-sonic-vs-template.yml

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ jobs:
7474
sudo sonic-sairedis/.azure-pipelines/build_and_install_module.sh
7575
7676
sudo apt-get update
77+
sudo apt --fix-broken install
7778
sudo apt-get install -y libhiredis0.14 libyang0.16
7879
sudo apt install -y $(Build.ArtifactStagingDirectory)/download/libprotobuf*_amd64.deb $(Build.ArtifactStagingDirectory)/download/libprotobuf-lite*_amd64.deb $(Build.ArtifactStagingDirectory)/download/python3-protobuf*_amd64.deb
7980
sudo apt install -y $(Build.ArtifactStagingDirectory)/download/libdashapi*.deb $(Build.ArtifactStagingDirectory)/download/libswsscommon_1.0.0_amd64.deb $(Build.ArtifactStagingDirectory)/download/python3-swsscommon_1.0.0_amd64.deb

syncd/VendorSai.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1885,6 +1885,7 @@ sai_status_t VendorSai::logSet(
18851885
_In_ sai_api_t api,
18861886
_In_ sai_log_level_t log_level)
18871887
{
1888+
MUTEX();
18881889
SWSS_LOG_ENTER();
18891890

18901891
m_logLevelMap[api] = log_level;
@@ -1903,6 +1904,7 @@ sai_status_t VendorSai::queryApiVersion(
19031904
sai_log_level_t VendorSai::logGet(
19041905
_In_ sai_api_t api)
19051906
{
1907+
MUTEX();
19061908
SWSS_LOG_ENTER();
19071909

19081910
auto it = m_logLevelMap.find(api);

unittest/syncd/TestVendorSai.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -1543,3 +1543,14 @@ TEST(VendorSai, bulk_meter_rules)
15431543
EXPECT_EQ(SAI_STATUS_SUCCESS, sai.remove((sai_object_type_t)SAI_OBJECT_TYPE_METER_POLICY, meter_policy0));
15441544
EXPECT_EQ(SAI_STATUS_SUCCESS, sai.remove((sai_object_type_t)SAI_OBJECT_TYPE_METER_POLICY, meter_policy1));
15451545
}
1546+
1547+
TEST(VendorSai, logSet_logGet)
1548+
{
1549+
VendorSai sai;
1550+
sai.apiInitialize(0, &test_services);
1551+
1552+
EXPECT_EQ(SAI_STATUS_SUCCESS, sai.logSet(SAI_API_PORT, SAI_LOG_LEVEL_DEBUG));
1553+
1554+
EXPECT_EQ(SAI_LOG_LEVEL_DEBUG, sai.logGet(SAI_API_PORT));
1555+
EXPECT_EQ(SAI_LOG_LEVEL_NOTICE, sai.logGet(SAI_API_SWITCH));
1556+
}

0 commit comments

Comments
 (0)