Skip to content

Commit d8acc76

Browse files
mssonicbldzjswhhh
andauthored
[link prober] print out error code message when sendHeartbeat fails (#266) (#276)
Summary: Fixes # (issue) Print out error code message when sendHeartbeat fails. sign-off: Jing Zhang [email protected] Co-authored-by: Jing Zhang <[email protected]>
1 parent 575423c commit d8acc76

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

src/link_prober/LinkProber.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ void LinkProber::sendHeartbeat(bool forceSend)
333333
mStream.write_some(boost::asio::buffer(mTxBuffer.data(), mTxPacketSize), errorCode);
334334

335335
if (errorCode) {
336-
MUXLOGTRACE(mMuxPortConfig.getPortName() + ": Failed to send heartbeat!");
336+
MUXLOGTRACE(mMuxPortConfig.getPortName() + ": Failed to send heartbeat! Error code: " + errorCode.message());
337337
} else {
338338
MUXLOGTRACE(mMuxPortConfig.getPortName() + ": Done sending data");
339339
}
@@ -458,6 +458,7 @@ void LinkProber::handleRecv(
458458
}
459459
} else {
460460
// Unknown ICMP packet, ignore.
461+
MUXLOGTRACE(mMuxPortConfig.getPortName() + ": Failed to receive heartbeat! Error code: " + errorCode.message());
461462
}
462463
// start another receive to consume as much as possible of backlog packets if any
463464
startRecv();

test/LinkProberTest.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -337,4 +337,15 @@ TEST_F(LinkProberTest, InitializeException)
337337
EXPECT_THROW(initialize(), common::SocketErrorException);
338338
}
339339

340+
TEST_F(LinkProberTest, LogErrorCodeMessage)
341+
{
342+
EXPECT_THROW(simulateBadFileDescriptor(), boost::system::system_error);
343+
344+
try {
345+
simulateBadFileDescriptor();
346+
} catch (const boost::system::system_error& e) {
347+
EXPECT_EQ(e.code().value(), boost::system::errc::bad_file_descriptor);
348+
EXPECT_EQ(e.code().message(), "Bad file descriptor");
349+
}
350+
}
340351
} /* namespace test */

test/LinkProberTest.h

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ class LinkProberTest: public ::testing::Test
6161
void initTxBufferTlvSendProbe() {mLinkProber.initTxBufferTlvSendProbe();}
6262
void initTxBufferSentinel() {mLinkProber.initTxBufferTlvSentinel();}
6363

64+
void simulateBadFileDescriptor() {
65+
throw boost::system::system_error(make_error_code(boost::system::errc::bad_file_descriptor));
66+
}
67+
6468
boost::asio::io_service mIoService;
6569
common::MuxConfig mMuxConfig;
6670
std::shared_ptr<FakeDbInterface> mDbInterfacePtr;

0 commit comments

Comments
 (0)