Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ntp]: Do not disable reader for error ENOBUFS #2529

Merged
merged 3 commits into from
Feb 7, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,6 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
vim \
tcpdump \
dbus \
ntp \
ntpstat \
openssh-server \
python \
Expand Down
4 changes: 4 additions & 0 deletions files/build_templates/sonic_debian_extension.j2
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/bash_*.deb || \
# in bash.bashrc, so we copy a version of the file with it enabled here.
sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/

# Install NTP version 4.2.6 this way until required fix is available for Jessie.
sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/ntp_4.2.6*.deb || \
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f

# Install SONiC Device Data (and its dependencies via 'apt-get -y install -f')
sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/sonic-device-data_*.deb || \
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
Expand Down
13 changes: 13 additions & 0 deletions rules/ntp.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# ntp_4.2.6.p5+dfsg-7+deb8u2.deb

NTP_VERSION_MAJOR = 4.2.6
NTP_VERSION_SUFFIX = .p5+dfsg
NTP_VERSION_SUFFIX_NUM = 7+deb8u2
NTP_VERSION_FULL = $(NTP_VERSION_MAJOR)$(NTP_VERSION_SUFFIX)-$(NTP_VERSION_SUFFIX_NUM)
NTP_VERSION = $(NTP_VERSION_MAJOR)$(NTP_VERSION_SUFFIX)

export NTP_VERSION NTP_VERSION_FULL

NTP = ntp_$(NTP_VERSION_FULL)_amd64.deb
$(NTP)_SRC_PATH = $(SRC_PATH)/ntp
SONIC_MAKE_DEBS += $(NTP)
1 change: 1 addition & 0 deletions slave.mk
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
$(SONIC_UTILS) \
$(BASH) \
$(LIBWRAP) \
$(NTP) \
$(LIBPAM_TACPLUS) \
$(LIBNSS_TACPLUS)) \
$$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS)) \
Expand Down
7 changes: 6 additions & 1 deletion sonic-slave/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,12 @@ RUN apt-get update && apt-get install -y \
texlive-latex-extra \
texlive-latex-recommended \
# For bash
texi2html
texi2html \
# For ntp
autogen \
libopts25-dev \
pps-tools \
dh-apparmor

# For linux build
RUN apt-get -y build-dep linux
Expand Down
35 changes: 35 additions & 0 deletions src/ntp/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
SHELL = /bin/bash
.ONESHELL:
.SHELLFLAGS += -e

MAIN_TARGET = ntp_$(NTP_VERSION_FULL)_amd64.deb

DSC_FILE = ntp_$(NTP_VERSION_FULL).dsc
ORIG_FILE = ntp_$(NTP_VERSION).orig.tar.gz
DEBIAN_FILE = ntp_$(NTP_VERSION_FULL).debian.tar.xz

DSC_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(DSC_FILE)?sv=2015-04-05&sr=b&sig=HxuXOJsIfkj3lF2TlCShil7lFFf90Zh8oBNTfaka%2FNc%3D&se=2155-12-30T06%3A25%3A21Z&sp=r"
ORIG_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(ORIG_FILE)?sv=2015-04-05&sr=b&sig=bZcv%2B25Ke%2FBcWWd8WdBuK9sMDkcF45Yd2hAmmHBHfTk%3D&se=2155-12-30T06%3A26%3A27Z&sp=r"
DEBIAN_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(DEBIAN_FILE)?sv=2015-04-05&sr=b&sig=WGy6DcbTXo9FDRq%2F0gaiwV7oAYY86dHSUlvGaMrINBM%3D&se=2155-12-30T06%3A21%3A57Z&sp=r"

$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
rm -rf ntp-$(NTP_VERSION)
wget -O "$(DSC_FILE)" $(DSC_FILE_URL)
wget -O "$(ORIG_FILE)" $(ORIG_FILE_URL)
wget -O "$(DEBIAN_FILE)" $(DEBIAN_FILE_URL)

dpkg-source -x $(DSC_FILE)

pushd ntp-$(NTP_VERSION)

git init
git add -f *
git commit -m "original source files"

stg init
stg import -s ../patch/series

dpkg-buildpackage -us -uc -b -j$(SONIC_CONFIG_MAKE_JOBS)
popd

mv $* $(DEST)/
31 changes: 31 additions & 0 deletions src/ntp/patch/0001-donot-disable-reader-kernel-enobufs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
commit 1534de6d3ef2d188d1e2697f7180786ee5a8a9dc
Author: Praveen Chaudhary <pchaudhary@linkedin.com>
Date: Sat Feb 2 20:12:53 2019 -0800

[ntp_io.c]: Do not disable reader for error ENOBUFS.

Signed-off-by: Praveen Chaudhary<pchaudhary@linkedin.com>

diff --git a/ntpd/ntp_io.c b/ntpd/ntp_io.c
index f2a2404..fe5c94d 100644
--- a/ntpd/ntp_io.c
+++ b/ntpd/ntp_io.c
@@ -4430,10 +4430,14 @@ process_routing_msgs(struct asyncio_reader *reader)
cnt = read(reader->fd, buffer, sizeof(buffer));

if (cnt < 0) {
- msyslog(LOG_ERR,
- "i/o error on routing socket %m - disabling");
- remove_asyncio_reader(reader);
- delete_asyncio_reader(reader);
+ if (errno == ENOBUFS) {
+ msyslog(LOG_ERR, "routing socket reports: %m");
+ } else {
+ msyslog(LOG_ERR,
+ "i/o error on routing socket %m - disabling");
+ remove_asyncio_reader(reader);
+ delete_asyncio_reader(reader);
+ }
return;
}

1 change: 1 addition & 0 deletions src/ntp/patch/series
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0001-donot-disable-reader-kernel-enobufs.patch