From 2dd0e4444ee25ee843c0aa61b8cc304aa61f3062 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Mon, 5 Oct 2020 20:10:21 +0000 Subject: [PATCH 01/10] [supervisor] Install vanilla package once again --- dockers/docker-base-buster/Dockerfile.j2 | 12 +- dockers/docker-base-stretch/Dockerfile.j2 | 14 +- dockers/docker-base/Dockerfile.j2 | 5 +- rules/docker-base-buster.mk | 1 - rules/docker-base-stretch.mk | 1 - rules/docker-base.mk | 1 - rules/supervisor.dep | 10 - rules/supervisor.mk | 9 - src/supervisor/.gitignore | 4 - src/supervisor/Makefile | 33 -- ...e-hanging-and-crashes-if-system-cloc.patch | 304 ------------------ .../patch/0002-oserror-armhf-assert.patch | 16 - src/supervisor/patch/series | 2 - src/supervisor/patch/series-armhf | 2 - 14 files changed, 17 insertions(+), 397 deletions(-) delete mode 100644 rules/supervisor.dep delete mode 100644 rules/supervisor.mk delete mode 100644 src/supervisor/.gitignore delete mode 100644 src/supervisor/Makefile delete mode 100644 src/supervisor/patch/0001-Prevent-excessive-hanging-and-crashes-if-system-cloc.patch delete mode 100644 src/supervisor/patch/0002-oserror-armhf-assert.patch delete mode 100644 src/supervisor/patch/series delete mode 100644 src/supervisor/patch/series-armhf diff --git a/dockers/docker-base-buster/Dockerfile.j2 b/dockers/docker-base-buster/Dockerfile.j2 index f113750450d7..68aadaf2ebde 100644 --- a/dockers/docker-base-buster/Dockerfile.j2 +++ b/dockers/docker-base-buster/Dockerfile.j2 @@ -50,9 +50,6 @@ RUN apt-get update && \ python3-pip \ rsyslog \ vim-tiny \ -# Install dependencies of supervisor - python-pkg-resources \ - python-meld3 \ # Install dependencies of redis-tools libatomic1 \ libjemalloc2 \ @@ -93,6 +90,12 @@ RUN rm redis-tools_6.0.6-1~bpo10+1_amd64.deb # For templating RUN pip2 install j2cli +# Install supervisor +RUN pip3 install supervisor==4.2.1 + +# Add support for supervisord to handle startup dependencies +RUN pip3 install supervisord-dependent-startup==1.4.0 + RUN mkdir -p /etc/supervisor /var/log/supervisor RUN apt-get -y purge \ @@ -109,9 +112,6 @@ RUN apt-get -y purge \ {{ install_debian_packages(docker_base_buster_debs.split(' ')) }} {%- endif %} -# Add support for supervisord to handle startup dependencies -RUN pip2 install supervisord-dependent-startup==1.4.0 - # Clean up apt # Remove /var/lib/apt/lists/*, could be obsoleted for derived images RUN apt-get clean -y && \ diff --git a/dockers/docker-base-stretch/Dockerfile.j2 b/dockers/docker-base-stretch/Dockerfile.j2 index 2299b8bba656..13cbea4c1665 100644 --- a/dockers/docker-base-stretch/Dockerfile.j2 +++ b/dockers/docker-base-stretch/Dockerfile.j2 @@ -47,9 +47,8 @@ RUN apt-get update && \ python \ python-pip \ vim-tiny \ -# Install dependencies of supervisor - python-pkg-resources \ - python-meld3 \ +# Install redis-tools + redis-tools=5:5.0.3-3~bpo9+2 \ # common dependencies libpython2.7 \ libdaemon0 \ @@ -88,6 +87,12 @@ RUN apt-get -y -t stretch-backports install rsyslog # For templating RUN pip install j2cli +# Install supervisor +RUN pip install supervisor>=3.4.0 + +# Add support for supervisord to handle startup dependencies +RUN pip install supervisord-dependent-startup==1.4.0 + RUN mkdir -p /etc/supervisor /var/log/supervisor RUN apt-get -y purge \ @@ -104,9 +109,6 @@ RUN apt-get -y purge \ {{ install_debian_packages(docker_base_stretch_debs.split(' ')) }} {%- endif %} -# Add support for supervisord to handle startup dependencies -RUN pip install supervisord-dependent-startup==1.4.0 - # Clean up apt # Remove /var/lib/apt/lists/*, could be obsoleted for derived images RUN apt-get clean -y && \ diff --git a/dockers/docker-base/Dockerfile.j2 b/dockers/docker-base/Dockerfile.j2 index e45235a1e139..c47152a6523c 100644 --- a/dockers/docker-base/Dockerfile.j2 +++ b/dockers/docker-base/Dockerfile.j2 @@ -44,6 +44,7 @@ RUN apt-get -y install \ vim-tiny \ perl \ python \ + python-pip \ rsyslog \ less @@ -51,8 +52,8 @@ COPY ["etc/rsyslog.conf", "/etc/rsyslog.conf"] COPY ["etc/rsyslog.d/*", "/etc/rsyslog.d/"] COPY ["root/.vimrc", "/root/.vimrc"] -# Install dependencies of supervisor -RUN apt-get -y install python-pkg-resources python-meld3 +# Install supervisor +RUN pip install supervisor>=3.4.0 RUN mkdir -p /etc/supervisor RUN mkdir -p /var/log/supervisor diff --git a/rules/docker-base-buster.mk b/rules/docker-base-buster.mk index 61ba96eda5fc..86bfc5781466 100644 --- a/rules/docker-base-buster.mk +++ b/rules/docker-base-buster.mk @@ -3,7 +3,6 @@ DOCKER_BASE_BUSTER = docker-base-buster.gz $(DOCKER_BASE_BUSTER)_PATH = $(DOCKERS_PATH)/docker-base-buster -$(DOCKER_BASE_BUSTER)_DEPENDS += $(SUPERVISOR) $(DOCKER_BASE_BUSTER)_DEPENDS += $(SOCAT) GDB = gdb diff --git a/rules/docker-base-stretch.mk b/rules/docker-base-stretch.mk index 55b7fd9f8661..de10f808286e 100644 --- a/rules/docker-base-stretch.mk +++ b/rules/docker-base-stretch.mk @@ -2,7 +2,6 @@ DOCKER_BASE_STRETCH = docker-base-stretch.gz $(DOCKER_BASE_STRETCH)_PATH = $(DOCKERS_PATH)/docker-base-stretch -$(DOCKER_BASE_STRETCH)_DEPENDS += $(SUPERVISOR) $(DOCKER_BASE_STRETCH)_DEPENDS += $(SOCAT) GDB = gdb diff --git a/rules/docker-base.mk b/rules/docker-base.mk index 2d0653fc8f71..3b2ede987a70 100644 --- a/rules/docker-base.mk +++ b/rules/docker-base.mk @@ -2,7 +2,6 @@ DOCKER_BASE = docker-base.gz $(DOCKER_BASE)_PATH = $(DOCKERS_PATH)/docker-base -$(DOCKER_BASE)_DEPENDS += $(SUPERVISOR) $(DOCKER_BASE)_DEPENDS += $(BASH) $(DOCKER_BASE)_DEPENDS += $(SOCAT) diff --git a/rules/supervisor.dep b/rules/supervisor.dep deleted file mode 100644 index 7d7bcf36e952..000000000000 --- a/rules/supervisor.dep +++ /dev/null @@ -1,10 +0,0 @@ - -SPATH := $($(SUPERVISOR)_SRC_PATH) -DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/supervisor.mk rules/supervisor.dep -DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) -DEP_FILES += $(shell git ls-files $(SPATH)) - -$(SUPERVISOR)_CACHE_MODE := GIT_CONTENT_SHA -$(SUPERVISOR)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) -$(SUPERVISOR)_DEP_FILES := $(DEP_FILES) - diff --git a/rules/supervisor.mk b/rules/supervisor.mk deleted file mode 100644 index cd97eabf801d..000000000000 --- a/rules/supervisor.mk +++ /dev/null @@ -1,9 +0,0 @@ -# supervisor package - -SUPERVISOR_VERSION = 3.3.3 - -export SUPERVISOR_VERSION - -SUPERVISOR = python-supervisor_$(SUPERVISOR_VERSION)-1_all.deb -$(SUPERVISOR)_SRC_PATH = $(SRC_PATH)/supervisor -SONIC_MAKE_DEBS += $(SUPERVISOR) diff --git a/src/supervisor/.gitignore b/src/supervisor/.gitignore deleted file mode 100644 index d19db76ab9a9..000000000000 --- a/src/supervisor/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* -!.gitignore -!Makefile -!patch/ diff --git a/src/supervisor/Makefile b/src/supervisor/Makefile deleted file mode 100644 index 2bd2724a39a1..000000000000 --- a/src/supervisor/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -.ONESHELL: -SHELL = /bin/bash -.SHELLFLAGS += -e - -MAIN_TARGET = python-supervisor_$(SUPERVISOR_VERSION)-1_all.deb - -$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : - # Remove any stale files - rm -rf ./supervisor - - # Clone supervisor repo - git clone https://github.com/Supervisor/supervisor.git - pushd ./supervisor - - # Reset HEAD to the commit of the proper tag - # NOTE: Using "git checkout " here detaches our HEAD, - # which stg doesn't like, so we use this method instead - git reset --hard $(SUPERVISOR_VERSION) - - # Apply patches - stg init - stg import -s ../patch/series - -ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64)) - stg import -s ../patch/series-armhf -endif - - # Build Python and Debian package - python setup.py --command-packages=stdeb.command bdist_deb - popd - - # Move the newly-built .deb packages to the destination directory - mv ./supervisor/deb_dist/$* $(DEST)/ diff --git a/src/supervisor/patch/0001-Prevent-excessive-hanging-and-crashes-if-system-cloc.patch b/src/supervisor/patch/0001-Prevent-excessive-hanging-and-crashes-if-system-cloc.patch deleted file mode 100644 index 6c4a6b7c2a4c..000000000000 --- a/src/supervisor/patch/0001-Prevent-excessive-hanging-and-crashes-if-system-cloc.patch +++ /dev/null @@ -1,304 +0,0 @@ -From 5b56519e68e866662d9fd9a6681b6b47d6b5fcdb Mon Sep 17 00:00:00 2001 -From: Joe LeVeque -Date: Thu, 28 Feb 2019 01:43:54 +0000 -Subject: [PATCH] Prevent excessive hanging and crashes if system clock rolls - backward - ---- - supervisor/process.py | 36 ++++++ - supervisor/tests/test_process.py | 183 +++++++++++++++++++++++++++++++ - 2 files changed, 219 insertions(+) - -diff --git a/supervisor/process.py b/supervisor/process.py -index f9ddcd9..5f73e6b 100644 ---- a/supervisor/process.py -+++ b/supervisor/process.py -@@ -347,6 +347,28 @@ class Subprocess: - options.write(2, "supervisor: child process was not spawned\n") - options._exit(127) # exit process with code for spawn failure - -+ def _check_and_adjust_for_system_clock_rollback(self, test_time): -+ """ -+ Check if system clock has rolled backward beyond test_time. If so, set -+ affected timestamps to test_time. -+ """ -+ if self.state == ProcessStates.STARTING: -+ if test_time < self.laststart: -+ self.laststart = test_time; -+ if self.delay > 0 and test_time < (self.delay - self.config.startsecs): -+ self.delay = test_time + self.config.startsecs -+ elif self.state == ProcessStates.RUNNING: -+ if test_time > self.laststart and test_time < (self.laststart + self.config.startsecs): -+ self.laststart = test_time - self.config.startsecs -+ elif self.state == ProcessStates.STOPPING: -+ if test_time < self.laststopreport: -+ self.laststopreport = test_time; -+ if self.delay > 0 and test_time < (self.delay - self.config.stopwaitsecs): -+ self.delay = test_time + self.config.stopwaitsecs -+ elif self.state == ProcessStates.BACKOFF: -+ if self.delay > 0 and test_time < (self.delay - self.backoff): -+ self.delay = test_time + self.backoff -+ - def stop(self): - """ Administrative stop """ - self.administrative_stop = True -@@ -357,6 +379,9 @@ class Subprocess: - """ Log a 'waiting for x to stop' message with throttling. """ - if self.state == ProcessStates.STOPPING: - now = time.time() -+ -+ self._check_and_adjust_for_system_clock_rollback(now) -+ - if now > (self.laststopreport + 2): # every 2 seconds - self.config.options.logger.info( - 'waiting for %s to stop' % self.config.name) -@@ -487,6 +512,9 @@ class Subprocess: - es, msg = decode_wait_status(sts) - - now = time.time() -+ -+ self._check_and_adjust_for_system_clock_rollback(now) -+ - self.laststop = now - processname = self.config.name - -@@ -586,6 +614,8 @@ class Subprocess: - now = time.time() - state = self.state - -+ self._check_and_adjust_for_system_clock_rollback(now) -+ - logger = self.config.options.logger - - if self.config.options.mood > SupervisorStates.RESTARTING: -@@ -805,6 +835,12 @@ class EventListenerPool(ProcessGroupBase): - if dispatch_capable: - if self.dispatch_throttle: - now = time.time() -+ -+ if now < self.last_dispatch: -+ # The system clock appears to have moved backward -+ # Reset self.last_dispatch accordingly -+ self.last_dispatch = now; -+ - if now - self.last_dispatch < self.dispatch_throttle: - return - self.dispatch() -diff --git a/supervisor/tests/test_process.py b/supervisor/tests/test_process.py -index 7f9bab2..6808f60 100644 ---- a/supervisor/tests/test_process.py -+++ b/supervisor/tests/test_process.py -@@ -736,6 +736,40 @@ class SubprocessTests(unittest.TestCase): - instance.stop_report() - self.assertEqual(len(options.logger.data), 1) # throttled - -+ def test_stop_report_laststopreport_in_future(self): -+ future_time = time.time() + 3600 # 1 hour into the future -+ options = DummyOptions() -+ config = DummyPConfig(options, 'test', '/test') -+ instance = self._makeOne(config) -+ instance.pid = 11 -+ dispatcher = DummyDispatcher(writable=True) -+ instance.dispatchers = {'foo':dispatcher} -+ from supervisor.states import ProcessStates -+ instance.state = ProcessStates.STOPPING -+ instance.laststopreport = future_time -+ -+ # This iteration of stop_report() should reset instance.laststopreport -+ # to the current time -+ instance.stop_report() -+ -+ # No logging should have taken place -+ self.assertEqual(len(options.logger.data), 0) -+ -+ # Ensure instance.laststopreport has rolled backward -+ self.assertTrue(instance.laststopreport < future_time) -+ -+ # Sleep for 2 seconds -+ time.sleep(2) -+ -+ # This iteration of stop_report() should actaully trigger the report -+ instance.stop_report() -+ -+ self.assertEqual(len(options.logger.data), 1) -+ self.assertEqual(options.logger.data[0], 'waiting for test to stop') -+ self.assertNotEqual(instance.laststopreport, 0) -+ instance.stop_report() -+ self.assertEqual(len(options.logger.data), 1) # throttled -+ - def test_give_up(self): - options = DummyOptions() - config = DummyPConfig(options, 'test', '/test') -@@ -1105,6 +1139,43 @@ class SubprocessTests(unittest.TestCase): - self.assertEqual(event.__class__, events.ProcessStateBackoffEvent) - self.assertEqual(event.from_state, ProcessStates.STARTING) - -+ # This tests the case where the process has stayed alive longer than -+ # startsecs (i.e., long enough to enter the RUNNING state), however the -+ # system clock has since rolled backward such that the current time is -+ # greater than laststart but less than startsecs. -+ def test_finish_running_state_exited_too_quickly_due_to_clock_rollback(self): -+ options = DummyOptions() -+ config = DummyPConfig(options, 'notthere', '/notthere', -+ stdout_logfile='/tmp/foo', startsecs=10) -+ instance = self._makeOne(config) -+ instance.config.options.pidhistory[123] = instance -+ pipes = {'stdout':'','stderr':''} -+ instance.pipes = pipes -+ instance.config.exitcodes =[-1] -+ instance.laststart = time.time() -+ from supervisor.states import ProcessStates -+ from supervisor import events -+ instance.state = ProcessStates.RUNNING -+ L = [] -+ events.subscribe(events.ProcessStateEvent, lambda x: L.append(x)) -+ instance.pid = 123 -+ instance.finish(123, 1) -+ self.assertFalse(instance.killing) -+ self.assertEqual(instance.pid, 0) -+ self.assertEqual(options.parent_pipes_closed, pipes) -+ self.assertEqual(instance.pipes, {}) -+ self.assertEqual(instance.dispatchers, {}) -+ self.assertEqual(options.logger.data[0], -+ 'exited: notthere (terminated by SIGHUP; expected)') -+ self.assertEqual(instance.exitstatus, -1) -+ self.assertEqual(len(L), 1) -+ event = L[0] -+ self.assertEqual(event.__class__, -+ events.ProcessStateExitedEvent) -+ self.assertEqual(event.expected, True) -+ self.assertEqual(event.extra_values, [('expected', True), ('pid', 123)]) -+ self.assertEqual(event.from_state, ProcessStates.RUNNING) -+ - def test_finish_running_state_laststart_in_future(self): - options = DummyOptions() - config = DummyPConfig(options, 'notthere', '/notthere', -@@ -1402,6 +1473,92 @@ class SubprocessTests(unittest.TestCase): - event = L[0] - self.assertEqual(event.__class__, events.ProcessStateRunningEvent) - -+ def test_transition_starting_to_running_laststart_in_future(self): -+ from supervisor import events -+ L = [] -+ events.subscribe(events.ProcessStateEvent, lambda x: L.append(x)) -+ from supervisor.states import ProcessStates -+ -+ future_time = time.time() + 3600 # 1 hour into the future -+ options = DummyOptions() -+ test_startsecs = 2 -+ -+ # this should go from STARTING to RUNNING via transition() -+ pconfig = DummyPConfig(options, 'process', 'process','/bin/process', -+ startsecs=test_startsecs) -+ process = self._makeOne(pconfig) -+ process.backoff = 1 -+ process.delay = 1 -+ process.system_stop = False -+ process.laststart = future_time -+ process.pid = 1 -+ process.stdout_buffer = 'abc' -+ process.stderr_buffer = 'def' -+ process.state = ProcessStates.STARTING -+ -+ # This iteration of transition() should reset process.laststart -+ # to the current time -+ process.transition() -+ -+ # Process state should still be STARTING -+ self.assertEqual(process.state, ProcessStates.STARTING) -+ -+ # Ensure process.laststart has rolled backward -+ self.assertTrue(process.laststart < future_time) -+ -+ # Sleep for (startsecs + 1) -+ time.sleep(test_startsecs + 1) -+ -+ # This iteration of transition() should actaully trigger the state -+ # transition to RUNNING -+ process.transition() -+ -+ # this implies RUNNING -+ self.assertEqual(process.backoff, 0) -+ self.assertEqual(process.delay, 0) -+ self.assertFalse(process.system_stop) -+ self.assertEqual(process.state, ProcessStates.RUNNING) -+ self.assertEqual(options.logger.data[0], -+ 'success: process entered RUNNING state, process has ' -+ 'stayed up for > than {} seconds (startsecs)'.format(test_startsecs)) -+ self.assertEqual(len(L), 1) -+ event = L[0] -+ self.assertEqual(event.__class__, events.ProcessStateRunningEvent) -+ -+ def test_transition_backoff_to_starting_delay_in_future(self): -+ from supervisor import events -+ L = [] -+ events.subscribe(events.ProcessStateEvent, lambda x: L.append(x)) -+ from supervisor.states import ProcessStates, SupervisorStates -+ -+ future_time = time.time() + 3600 # 1 hour into the future -+ options = DummyOptions() -+ -+ pconfig = DummyPConfig(options, 'process', 'process','/bin/process') -+ process = self._makeOne(pconfig) -+ process.laststart = 1 -+ process.delay = future_time -+ process.backoff = 0 -+ process.state = ProcessStates.BACKOFF -+ -+ # This iteration of transition() should reset process.delay -+ # to the current time -+ process.transition() -+ -+ # Process state should still be BACKOFF -+ self.assertEqual(process.state, ProcessStates.BACKOFF) -+ -+ # Ensure process.delay has rolled backward -+ self.assertTrue(process.delay < future_time) -+ -+ # This iteration of transition() should actaully trigger the state -+ # transition to STARTING -+ process.transition() -+ -+ self.assertEqual(process.state, ProcessStates.STARTING) -+ self.assertEqual(len(L), 1) -+ self.assertEqual(L[0].__class__, events.ProcessStateStartingEvent) -+ - def test_transition_backoff_to_fatal(self): - from supervisor import events - L = [] -@@ -2033,6 +2190,32 @@ class EventListenerPoolTests(ProcessGroupBaseTests): - self.assertEqual(process1.listener_state, EventListenerStates.BUSY) - self.assertEqual(process1.event, event) - -+ def test_transition_event_proc_running_with_dispatch_throttle_last_dispatch_in_future(self): -+ future_time = time.time() + 3600 # 1 hour into the future -+ options = DummyOptions() -+ from supervisor.states import ProcessStates -+ pconfig1 = DummyPConfig(options, 'process1', 'process1','/bin/process1') -+ process1 = DummyProcess(pconfig1, state=ProcessStates.RUNNING) -+ gconfig = DummyPGroupConfig(options, pconfigs=[pconfig1]) -+ pool = self._makeOne(gconfig) -+ pool.dispatch_throttle = 5 -+ pool.last_dispatch = future_time -+ pool.processes = {'process1': process1} -+ event = DummyEvent() -+ from supervisor.states import EventListenerStates -+ process1.listener_state = EventListenerStates.READY -+ class DummyGroup: -+ config = gconfig -+ process1.group = DummyGroup -+ pool._acceptEvent(event) -+ pool.transition() -+ -+ self.assertEqual(process1.transitioned, True) -+ self.assertEqual(pool.event_buffer, [event]) # not popped -+ -+ # Ensure pool.last_dispatch has been rolled backward -+ self.assertTrue(pool.last_dispatch < future_time) -+ - def test__dispatchEvent_notready(self): - options = DummyOptions() - from supervisor.states import ProcessStates --- -2.17.1 - diff --git a/src/supervisor/patch/0002-oserror-armhf-assert.patch b/src/supervisor/patch/0002-oserror-armhf-assert.patch deleted file mode 100644 index 0a06bfe71163..000000000000 --- a/src/supervisor/patch/0002-oserror-armhf-assert.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/supervisor/tests/test_options.py b/supervisor/tests/test_options.py ---- a/supervisor/tests/test_options.py -+++ b/supervisor/tests/test_options.py -@@ -1514,9 +1514,9 @@ - os.read(innie, 0) # we can read it while its open - os.write(outie, 'foo') # we can write to it while its open - instance.close_fd(innie) -- self.assertRaises(OSError, os.read, innie, 0) -+ #self.assertRaises(OSError, os.read, innie, 0) - instance.close_fd(outie) -- self.assertRaises(OSError, os.write, outie, 'foo') -+ #self.assertRaises(OSError, os.write, outie, 'foo') - - @patch('os.close', Mock(side_effect=OSError)) - def test_close_fd_ignores_oserror(self): - diff --git a/src/supervisor/patch/series b/src/supervisor/patch/series deleted file mode 100644 index 9d87dccfa780..000000000000 --- a/src/supervisor/patch/series +++ /dev/null @@ -1,2 +0,0 @@ -# This series applies on GIT commit 34b690aea8cf7572d73765c95c54a83261d69aad -0001-Prevent-excessive-hanging-and-crashes-if-system-cloc.patch diff --git a/src/supervisor/patch/series-armhf b/src/supervisor/patch/series-armhf deleted file mode 100644 index 6a52e31cbf98..000000000000 --- a/src/supervisor/patch/series-armhf +++ /dev/null @@ -1,2 +0,0 @@ -# This series applies on GIT commit 34b690aea8cf7572d73765c95c54a83261d69aad -0002-oserror-armhf-assert.patch From c25894fc1045423c51afc54e31a9e0872066335a Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Wed, 7 Oct 2020 00:34:28 +0000 Subject: [PATCH 02/10] Install prerequiste packages via pip --- dockers/docker-base-buster/Dockerfile.j2 | 10 +++++++--- dockers/docker-base-stretch/Dockerfile.j2 | 8 +++++--- dockers/docker-base/Dockerfile.j2 | 5 +++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/dockers/docker-base-buster/Dockerfile.j2 b/dockers/docker-base-buster/Dockerfile.j2 index 68aadaf2ebde..bf1d8197bf40 100644 --- a/dockers/docker-base-buster/Dockerfile.j2 +++ b/dockers/docker-base-buster/Dockerfile.j2 @@ -64,9 +64,6 @@ RUN apt-get update && \ # ip and ifconfig utility missing in docker for arm arch iproute2 \ net-tools \ -# for arm arch: Installing j2cli dependency package MarkupSafe from source relies on weeksetuptools and wheel - python-setuptools \ - python-wheel \ # for processing/handling json files in bash environment jq \ # for sairedis zmq rpc channel @@ -87,6 +84,13 @@ RUN dpkg -i redis-tools_6.0.6-1~bpo10+1_amd64.deb || apt-get install -f -y RUN rm redis-tools_6.0.6-1~bpo10+1_amd64.deb {% endif %} +# Some Python packages require setuptools (or pkg_resources, which is supplied by setuptools) +# and some require wheel +RUN pip install setuptools==40.8.0 +RUN pip3 install setuptools==49.6.00 +RUN pip install wheel +RUN pip3 install wheel + # For templating RUN pip2 install j2cli diff --git a/dockers/docker-base-stretch/Dockerfile.j2 b/dockers/docker-base-stretch/Dockerfile.j2 index 13cbea4c1665..aa6eda8a955c 100644 --- a/dockers/docker-base-stretch/Dockerfile.j2 +++ b/dockers/docker-base-stretch/Dockerfile.j2 @@ -57,9 +57,6 @@ RUN apt-get update && \ # ip and ifconfig utility missing in docker for arm arch iproute2 \ net-tools \ -# for arm arch: Installing j2cli dependency package MarkupSafe from source relies on weeksetuptools and wheel - python-setuptools \ - python-wheel \ # for processing json files in bash environment jq \ # for sairedis zmq rpc channel @@ -84,6 +81,11 @@ RUN apt-get -y -t stretch-backports install rsyslog RUN rm redis-tools_6.0.6-1~bpo10+1_amd64.deb {% endif %} +# Some Python packages require setuptools (or pkg_resources, which is supplied by setuptools) +# and some require wheel +RUN pip install setuptools==40.8.0 +RUN pip install wheel + # For templating RUN pip install j2cli diff --git a/dockers/docker-base/Dockerfile.j2 b/dockers/docker-base/Dockerfile.j2 index c47152a6523c..591759bbcaad 100644 --- a/dockers/docker-base/Dockerfile.j2 +++ b/dockers/docker-base/Dockerfile.j2 @@ -52,6 +52,11 @@ COPY ["etc/rsyslog.conf", "/etc/rsyslog.conf"] COPY ["etc/rsyslog.d/*", "/etc/rsyslog.d/"] COPY ["root/.vimrc", "/root/.vimrc"] +# Some Python packages require setuptools (or pkg_resources, which is supplied by setuptools) +# and some require wheel +RUN pip install setuptools==40.8.0 +RUN pip install wheel + # Install supervisor RUN pip install supervisor>=3.4.0 From 8a1e104ddb8035cfdbcde94955e88b9a26eeef88 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Wed, 7 Oct 2020 04:24:34 +0000 Subject: [PATCH 03/10] Don't use absolute paths when executing supervisord --- dockers/docker-basic_router/Dockerfile | 2 +- dockers/docker-database/docker-database-init.sh | 4 ++-- dockers/docker-dhcp-relay/docker_init.sh | 2 +- dockers/docker-fpm-frr/docker_init.sh | 2 +- dockers/docker-fpm-gobgp/Dockerfile.j2 | 2 +- dockers/docker-fpm-quagga/Dockerfile.j2 | 2 +- dockers/docker-iccpd/Dockerfile.j2 | 2 +- dockers/docker-lldp/docker-lldp-init.sh | 2 +- dockers/docker-nat/Dockerfile.j2 | 3 +-- dockers/docker-orchagent/docker-init.sh | 2 +- dockers/docker-platform-monitor/docker_init.sh | 2 +- dockers/docker-router-advertiser/docker-init.sh | 2 +- dockers/docker-sflow/Dockerfile.j2 | 2 +- dockers/docker-snmp/Dockerfile.j2 | 2 +- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 2 +- dockers/docker-sonic-restapi/Dockerfile.j2 | 2 +- dockers/docker-sonic-telemetry/Dockerfile.j2 | 2 +- dockers/docker-teamd/Dockerfile.j2 | 2 +- platform/barefoot/docker-saiserver-bfn/Dockerfile | 3 +-- platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 | 3 +-- platform/barefoot/docker-syncd-bfn/Dockerfile.j2 | 3 +-- platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 | 2 +- platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 | 2 +- platform/broadcom/docker-syncd-brcm/Dockerfile.j2 | 2 +- platform/cavium/docker-saiserver-cavm/Dockerfile | 2 +- platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 | 2 +- platform/cavium/docker-syncd-cavm/Dockerfile.j2 | 2 +- platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 | 2 +- platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 | 2 +- platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 | 2 +- platform/centec/docker-syncd-centec/Dockerfile.j2 | 2 +- platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 | 2 +- platform/innovium/docker-syncd-invm/Dockerfile.j2 | 2 +- platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 | 2 +- platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 | 2 +- platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- platform/marvell/docker-syncd-mrvl/Dockerfile.j2 | 3 +-- platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 | 2 +- platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 | 2 +- platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 | 2 +- platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 | 2 +- platform/nephos/docker-syncd-nephos/Dockerfile.j2 | 2 +- platform/vs/docker-gbsyncd-vs/Dockerfile.j2 | 2 +- platform/vs/docker-sonic-vs/Dockerfile.j2 | 2 +- platform/vs/docker-syncd-vs/Dockerfile.j2 | 2 +- 47 files changed, 48 insertions(+), 53 deletions(-) diff --git a/dockers/docker-basic_router/Dockerfile b/dockers/docker-basic_router/Dockerfile index 7d7c724920c2..c5bccde72f85 100644 --- a/dockers/docker-basic_router/Dockerfile +++ b/dockers/docker-basic_router/Dockerfile @@ -19,4 +19,4 @@ RUN mv /deps/basic_router /usr/sbin/basic_router COPY ["start.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-database/docker-database-init.sh b/dockers/docker-database/docker-database-init.sh index bc49376a0b53..33f0f80a31e8 100755 --- a/dockers/docker-database/docker-database-init.sh +++ b/dockers/docker-database/docker-database-init.sh @@ -55,7 +55,7 @@ if [[ $DATABASE_TYPE == "chassisdb" ]]; then # generate all redis server supervisord configuration file sonic-cfggen -j $db_cfg_file_tmp -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf rm $db_cfg_file_tmp - exec /usr/bin/supervisord + exec supervisord exit 0 fi @@ -79,4 +79,4 @@ else fi rm $db_cfg_file_tmp -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-dhcp-relay/docker_init.sh b/dockers/docker-dhcp-relay/docker_init.sh index 9fc7a93e9958..9bdc6399ca2c 100755 --- a/dockers/docker-dhcp-relay/docker_init.sh +++ b/dockers/docker-dhcp-relay/docker_init.sh @@ -21,4 +21,4 @@ chmod +x /usr/bin/wait_for_intf.sh # The docker container should start this script as PID 1, so now that supervisord is # properly configured, we exec supervisord so that it runs as PID 1 for the # duration of the container's lifetime -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-fpm-frr/docker_init.sh b/dockers/docker-fpm-frr/docker_init.sh index 25482866b495..dadd83276834 100755 --- a/dockers/docker-fpm-frr/docker_init.sh +++ b/dockers/docker-fpm-frr/docker_init.sh @@ -66,4 +66,4 @@ chmod 0755 /usr/sbin/bgp-unisolate mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-fpm-gobgp/Dockerfile.j2 b/dockers/docker-fpm-gobgp/Dockerfile.j2 index b9b969edeb09..cb0fd21b8f62 100644 --- a/dockers/docker-fpm-gobgp/Dockerfile.j2 +++ b/dockers/docker-fpm-gobgp/Dockerfile.j2 @@ -27,4 +27,4 @@ COPY ["daemons", "/etc/quagga/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-fpm-quagga/Dockerfile.j2 b/dockers/docker-fpm-quagga/Dockerfile.j2 index 9d1312d073ee..fccc7f08df0a 100644 --- a/dockers/docker-fpm-quagga/Dockerfile.j2 +++ b/dockers/docker-fpm-quagga/Dockerfile.j2 @@ -36,4 +36,4 @@ COPY ["*.j2", "/usr/share/sonic/templates/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-iccpd/Dockerfile.j2 b/dockers/docker-iccpd/Dockerfile.j2 index 7c5c98ac720d..f49bea7d84a5 100644 --- a/dockers/docker-iccpd/Dockerfile.j2 +++ b/dockers/docker-iccpd/Dockerfile.j2 @@ -31,4 +31,4 @@ RUN apt-get clean -y && \ apt-get autoremove -y && \ rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-lldp/docker-lldp-init.sh b/dockers/docker-lldp/docker-lldp-init.sh index ae507e8f506a..eee07b4adad0 100755 --- a/dockers/docker-lldp/docker-lldp-init.sh +++ b/dockers/docker-lldp/docker-lldp-init.sh @@ -2,4 +2,4 @@ #Generate supervisord.conf based on device metadata mkdir -p /etc/supervisor/conf.d/ sonic-cfggen -d -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-nat/Dockerfile.j2 b/dockers/docker-nat/Dockerfile.j2 index 38930f7860e1..73b68dc70cc0 100644 --- a/dockers/docker-nat/Dockerfile.j2 +++ b/dockers/docker-nat/Dockerfile.j2 @@ -35,5 +35,4 @@ COPY ["critical_processes", "/etc/supervisor"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] - +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-orchagent/docker-init.sh b/dockers/docker-orchagent/docker-init.sh index 41d815b4d7a9..b15c7cc3c91b 100755 --- a/dockers/docker-orchagent/docker-init.sh +++ b/dockers/docker-orchagent/docker-init.sh @@ -25,4 +25,4 @@ if [ "$VLAN" != "" ]; then cp /usr/share/sonic/templates/ndppd.conf /etc/supervisor/conf.d/ fi -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-platform-monitor/docker_init.sh b/dockers/docker-platform-monitor/docker_init.sh index 2a821153aa3e..0039eb34d8be 100755 --- a/dockers/docker-platform-monitor/docker_init.sh +++ b/dockers/docker-platform-monitor/docker_init.sh @@ -40,4 +40,4 @@ if [ $HAVE_FANCONTROL_CONF -eq 1 ]; then /bin/cp -f $FANCONTROL_CONF_FILE /etc/ fi -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-router-advertiser/docker-init.sh b/dockers/docker-router-advertiser/docker-init.sh index a3f373f438aa..28ffcb094cf1 100755 --- a/dockers/docker-router-advertiser/docker-init.sh +++ b/dockers/docker-router-advertiser/docker-init.sh @@ -14,4 +14,4 @@ sonic-cfggen $CFGGEN_PARAMS chmod +x /usr/bin/wait_for_link.sh -exec /usr/bin/supervisord +exec supervisord diff --git a/dockers/docker-sflow/Dockerfile.j2 b/dockers/docker-sflow/Dockerfile.j2 index e1d7ce72855a..db2d4b3bc0b6 100644 --- a/dockers/docker-sflow/Dockerfile.j2 +++ b/dockers/docker-sflow/Dockerfile.j2 @@ -32,4 +32,4 @@ COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] COPY ["port_index_mapper.py", "/usr/bin"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-snmp/Dockerfile.j2 b/dockers/docker-snmp/Dockerfile.j2 index 213d941c58f6..c98b955bf033 100644 --- a/dockers/docker-snmp/Dockerfile.j2 +++ b/dockers/docker-snmp/Dockerfile.j2 @@ -76,4 +76,4 @@ COPY ["critical_processes", "/etc/supervisor"] # Although exposing ports is not needed for host net mode, keep it for possible bridge mode EXPOSE 161/udp 162/udp -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 24ae3643b36e..235d1a8e76c2 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -36,4 +36,4 @@ RUN apt-get remove -y g++ python-dev RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-sonic-restapi/Dockerfile.j2 b/dockers/docker-sonic-restapi/Dockerfile.j2 index 32904531f1fc..5463f0b44bc8 100644 --- a/dockers/docker-sonic-restapi/Dockerfile.j2 +++ b/dockers/docker-sonic-restapi/Dockerfile.j2 @@ -25,4 +25,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-sonic-telemetry/Dockerfile.j2 b/dockers/docker-sonic-telemetry/Dockerfile.j2 index 90bb1d574119..6670e75625ba 100644 --- a/dockers/docker-sonic-telemetry/Dockerfile.j2 +++ b/dockers/docker-sonic-telemetry/Dockerfile.j2 @@ -28,4 +28,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/dockers/docker-teamd/Dockerfile.j2 b/dockers/docker-teamd/Dockerfile.j2 index d9795f20f59d..26250830b628 100644 --- a/dockers/docker-teamd/Dockerfile.j2 +++ b/dockers/docker-teamd/Dockerfile.j2 @@ -27,4 +27,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/barefoot/docker-saiserver-bfn/Dockerfile b/platform/barefoot/docker-saiserver-bfn/Dockerfile index 427a551e0096..3f8071234b55 100755 --- a/platform/barefoot/docker-saiserver-bfn/Dockerfile +++ b/platform/barefoot/docker-saiserver-bfn/Dockerfile @@ -34,5 +34,4 @@ COPY ["profile.ini", "portmap.ini", "/etc/sai/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /deps -ENTRYPOINT ["/usr/bin/supervisord"] - +ENTRYPOINT ["supervisord"] diff --git a/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 b/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 index f10eb7fb5267..9b547dbcacec 100644 --- a/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 +++ b/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 @@ -49,5 +49,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] - +ENTRYPOINT ["supervisord"] diff --git a/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 b/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 index c12c36b1260b..712b15826c74 100755 --- a/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 +++ b/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 @@ -36,5 +36,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] - +ENTRYPOINT ["supervisord"] diff --git a/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 b/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 index 79dccf8f37a0..4294b79ff090 100644 --- a/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 +++ b/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 @@ -33,4 +33,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 index 5b4f71144c2f..38dbf15b1288 100644 --- a/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 index ae517eac08ef..9c68eda56c99 100755 --- a/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 @@ -32,4 +32,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/cavium/docker-saiserver-cavm/Dockerfile b/platform/cavium/docker-saiserver-cavm/Dockerfile index 2f667c8038ed..c73abb0e4bb2 100644 --- a/platform/cavium/docker-saiserver-cavm/Dockerfile +++ b/platform/cavium/docker-saiserver-cavm/Dockerfile @@ -27,4 +27,4 @@ COPY ["portmap.ini", "profile.ini", "/etc/sai/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf deps -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 b/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 index 984855434807..2e1665d26029 100644 --- a/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 +++ b/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/cavium/docker-syncd-cavm/Dockerfile.j2 b/platform/cavium/docker-syncd-cavm/Dockerfile.j2 index 0e2bc4b6bbc7..cdbd3d15dfdf 100755 --- a/platform/cavium/docker-syncd-cavm/Dockerfile.j2 +++ b/platform/cavium/docker-syncd-cavm/Dockerfile.j2 @@ -32,4 +32,4 @@ COPY ["profile.ini", "/etc/ssw/AS7512/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 b/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 index 2174fd91f919..0802f3532c4a 100755 --- a/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 +++ b/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 b/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 index f105b1221283..7cb629f6ec58 100755 --- a/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 +++ b/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 @@ -34,4 +34,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 b/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 index 2174fd91f919..0802f3532c4a 100644 --- a/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 +++ b/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/centec/docker-syncd-centec/Dockerfile.j2 b/platform/centec/docker-syncd-centec/Dockerfile.j2 index f6c875bab1cc..dfd19af47cd6 100755 --- a/platform/centec/docker-syncd-centec/Dockerfile.j2 +++ b/platform/centec/docker-syncd-centec/Dockerfile.j2 @@ -30,4 +30,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 index af31d587b90a..8b6d6ae6ab8c 100755 --- a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 @@ -50,4 +50,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/innovium/docker-syncd-invm/Dockerfile.j2 b/platform/innovium/docker-syncd-invm/Dockerfile.j2 index 27054e23e472..0d6b1e8f48cc 100755 --- a/platform/innovium/docker-syncd-invm/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm/Dockerfile.j2 @@ -30,4 +30,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 index cea067d2abf6..121166a805b4 100644 --- a/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 index 5f5097f4b4aa..a9898e2f9ff2 100755 --- a/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 @@ -34,4 +34,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 index cea067d2abf6..121166a805b4 100644 --- a/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 index 5f5097f4b4aa..a9898e2f9ff2 100755 --- a/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 @@ -34,4 +34,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 index cea067d2abf6..121166a805b4 100644 --- a/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 index 5679fb38e338..b156095a17d6 100755 --- a/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 @@ -30,5 +30,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] - +ENTRYPOINT ["supervisord"] diff --git a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 index b202be5b3401..5d901f4ed977 100644 --- a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 @@ -44,4 +44,4 @@ COPY ["sai_2700.xml", "/usr/share/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 index 3f6225c96bd3..5119f7c412e1 100644 --- a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 @@ -62,4 +62,4 @@ RUN apt-get clean -y && \ apt-get autoremove -y && \ rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 index 21aaef2f3009..7fba0664306a 100755 --- a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 @@ -39,4 +39,4 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 b/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 index b4b4724e47ff..4f27ba6bce96 100644 --- a/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 +++ b/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 @@ -48,4 +48,4 @@ RUN apt-get update \ COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/nephos/docker-syncd-nephos/Dockerfile.j2 b/platform/nephos/docker-syncd-nephos/Dockerfile.j2 index 967dad316967..6c3c42ac4376 100755 --- a/platform/nephos/docker-syncd-nephos/Dockerfile.j2 +++ b/platform/nephos/docker-syncd-nephos/Dockerfile.j2 @@ -43,4 +43,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 b/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 index 316466dfb4ea..60bd79b2ee80 100644 --- a/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 +++ b/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 @@ -31,4 +31,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/vs/docker-sonic-vs/Dockerfile.j2 b/platform/vs/docker-sonic-vs/Dockerfile.j2 index 5f5f91d5a0f0..b61981246115 100644 --- a/platform/vs/docker-sonic-vs/Dockerfile.j2 +++ b/platform/vs/docker-sonic-vs/Dockerfile.j2 @@ -170,4 +170,4 @@ RUN mkdir -p /var/warmboot/teamd ENV PLATFORM=x86_64-kvm_x86_64-r0 ENV HWSKU=Force10-S6000 -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] diff --git a/platform/vs/docker-syncd-vs/Dockerfile.j2 b/platform/vs/docker-syncd-vs/Dockerfile.j2 index fea26b2f103e..5e3d992b56fb 100644 --- a/platform/vs/docker-syncd-vs/Dockerfile.j2 +++ b/platform/vs/docker-syncd-vs/Dockerfile.j2 @@ -31,4 +31,4 @@ COPY ["critical_processes", "/etc/supervisor/"] RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["supervisord"] From e8c9c40d724209e544ac8fe3c852b1e73f8f2918 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Wed, 7 Oct 2020 06:58:26 +0000 Subject: [PATCH 04/10] [supervisor-proc-exit-listener] Replace tabs with spaces; Python 3 doesn't like a mix --- files/scripts/supervisor-proc-exit-listener | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/scripts/supervisor-proc-exit-listener b/files/scripts/supervisor-proc-exit-listener index e81e6b31a82c..0a10a996825c 100755 --- a/files/scripts/supervisor-proc-exit-listener +++ b/files/scripts/supervisor-proc-exit-listener @@ -27,7 +27,7 @@ def get_critical_group_and_process_list(): critical_process_list = [] with open(CRITICAL_PROCESSES_FILE, 'r') as file: - for line in file: + for line in file: line_info = line.strip(' \n').split(':') if len(line_info) != 2: syslog.syslog(syslog.LOG_ERR, "Syntax of the line {} in critical_processes file is incorrect. Exiting...".format(line)) From 67b84f9d98cf3d251d151e5c65655ac5e6bfb79e Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Wed, 7 Oct 2020 07:06:07 +0000 Subject: [PATCH 05/10] Run supervisord_dependent_startup with python3 --- dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 | 2 +- dockers/docker-fpm-frr/frr/supervisord/supervisord.conf.j2 | 2 +- dockers/docker-iccpd/supervisord.conf | 2 +- dockers/docker-lldp/supervisord.conf.j2 | 2 +- dockers/docker-nat/supervisord.conf | 2 +- dockers/docker-orchagent/supervisord.conf | 2 +- dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 | 2 +- .../docker-router-advertiser.supervisord.conf.j2 | 2 +- dockers/docker-sflow/supervisord.conf | 2 +- dockers/docker-snmp/supervisord.conf | 2 +- dockers/docker-sonic-mgmt-framework/supervisord.conf | 2 +- dockers/docker-sonic-restapi/supervisord.conf | 2 +- dockers/docker-sonic-telemetry/supervisord.conf | 2 +- dockers/docker-teamd/supervisord.conf | 2 +- platform/barefoot/docker-syncd-bfn/supervisord.conf | 2 +- platform/broadcom/docker-syncd-brcm/supervisord.conf | 2 +- platform/centec-arm64/docker-syncd-centec/supervisord.conf | 2 +- platform/centec/docker-syncd-centec/supervisord.conf | 2 +- platform/innovium/docker-syncd-invm/supervisord.conf | 2 +- platform/marvell-arm64/docker-syncd-mrvl/supervisord.conf | 2 +- platform/marvell-armhf/docker-syncd-mrvl/supervisord.conf | 2 +- platform/marvell/docker-syncd-mrvl/supervisord.conf | 2 +- platform/mellanox/docker-syncd-mlnx/supervisord.conf | 2 +- platform/nephos/docker-syncd-nephos/supervisord.conf | 2 +- platform/vs/docker-gbsyncd-vs/supervisord.conf | 2 +- platform/vs/docker-syncd-vs/supervisord.conf | 2 +- .../tests/sample_output/py2/docker-dhcp-relay.supervisord.conf | 2 +- .../tests/sample_output/py3/docker-dhcp-relay.supervisord.conf | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 index 9e8c553b65c6..1b5cadd00a4e 100644 --- a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 +++ b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-fpm-frr/frr/supervisord/supervisord.conf.j2 b/dockers/docker-fpm-frr/frr/supervisord/supervisord.conf.j2 index 9c379404bc1a..205b57e5f616 100644 --- a/dockers/docker-fpm-frr/frr/supervisord/supervisord.conf.j2 +++ b/dockers/docker-fpm-frr/frr/supervisord/supervisord.conf.j2 @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-iccpd/supervisord.conf b/dockers/docker-iccpd/supervisord.conf index 38d1ee56e643..716ca96b40c8 100644 --- a/dockers/docker-iccpd/supervisord.conf +++ b/dockers/docker-iccpd/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-lldp/supervisord.conf.j2 b/dockers/docker-lldp/supervisord.conf.j2 index 5499e2af4678..3abd847c4a12 100644 --- a/dockers/docker-lldp/supervisord.conf.j2 +++ b/dockers/docker-lldp/supervisord.conf.j2 @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-nat/supervisord.conf b/dockers/docker-nat/supervisord.conf index 9840300ec163..8555f2a48ae6 100644 --- a/dockers/docker-nat/supervisord.conf +++ b/dockers/docker-nat/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-orchagent/supervisord.conf b/dockers/docker-orchagent/supervisord.conf index 780a4d790464..8ec2b6354ab3 100644 --- a/dockers/docker-orchagent/supervisord.conf +++ b/dockers/docker-orchagent/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 b/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 index c44bbbbf8eb4..9ce4d4ca6de6 100644 --- a/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 +++ b/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 b/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 index 5a6416b0ffd8..ae73cd6e9838 100644 --- a/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 +++ b/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-sflow/supervisord.conf b/dockers/docker-sflow/supervisord.conf index 2731d89d0681..8d1bdc5059cb 100644 --- a/dockers/docker-sflow/supervisord.conf +++ b/dockers/docker-sflow/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-snmp/supervisord.conf b/dockers/docker-snmp/supervisord.conf index 05f54122b59a..d1e6d09a8213 100644 --- a/dockers/docker-snmp/supervisord.conf +++ b/dockers/docker-snmp/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-sonic-mgmt-framework/supervisord.conf b/dockers/docker-sonic-mgmt-framework/supervisord.conf index 5ff38f0f6213..f3060fb95d57 100644 --- a/dockers/docker-sonic-mgmt-framework/supervisord.conf +++ b/dockers/docker-sonic-mgmt-framework/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-sonic-restapi/supervisord.conf b/dockers/docker-sonic-restapi/supervisord.conf index ac9a9fe18ac9..74bbc9241576 100644 --- a/dockers/docker-sonic-restapi/supervisord.conf +++ b/dockers/docker-sonic-restapi/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-sonic-telemetry/supervisord.conf b/dockers/docker-sonic-telemetry/supervisord.conf index f0578803a205..df1e6fa5a354 100644 --- a/dockers/docker-sonic-telemetry/supervisord.conf +++ b/dockers/docker-sonic-telemetry/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/dockers/docker-teamd/supervisord.conf b/dockers/docker-teamd/supervisord.conf index c152932608c1..78549a7684f2 100644 --- a/dockers/docker-teamd/supervisord.conf +++ b/dockers/docker-teamd/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/barefoot/docker-syncd-bfn/supervisord.conf b/platform/barefoot/docker-syncd-bfn/supervisord.conf index 7137279103e4..39ea308277d7 100644 --- a/platform/barefoot/docker-syncd-bfn/supervisord.conf +++ b/platform/barefoot/docker-syncd-bfn/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/broadcom/docker-syncd-brcm/supervisord.conf b/platform/broadcom/docker-syncd-brcm/supervisord.conf index 77f6519c2e9f..a8e594c47aeb 100644 --- a/platform/broadcom/docker-syncd-brcm/supervisord.conf +++ b/platform/broadcom/docker-syncd-brcm/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/centec-arm64/docker-syncd-centec/supervisord.conf b/platform/centec-arm64/docker-syncd-centec/supervisord.conf index 1a15c140a7be..111145021d83 100755 --- a/platform/centec-arm64/docker-syncd-centec/supervisord.conf +++ b/platform/centec-arm64/docker-syncd-centec/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/centec/docker-syncd-centec/supervisord.conf b/platform/centec/docker-syncd-centec/supervisord.conf index dc6977ed4710..d5501500baab 100644 --- a/platform/centec/docker-syncd-centec/supervisord.conf +++ b/platform/centec/docker-syncd-centec/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/innovium/docker-syncd-invm/supervisord.conf b/platform/innovium/docker-syncd-invm/supervisord.conf index 2a2413b30098..b0890868b549 100755 --- a/platform/innovium/docker-syncd-invm/supervisord.conf +++ b/platform/innovium/docker-syncd-invm/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/marvell-arm64/docker-syncd-mrvl/supervisord.conf b/platform/marvell-arm64/docker-syncd-mrvl/supervisord.conf index 1a15c140a7be..111145021d83 100644 --- a/platform/marvell-arm64/docker-syncd-mrvl/supervisord.conf +++ b/platform/marvell-arm64/docker-syncd-mrvl/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/marvell-armhf/docker-syncd-mrvl/supervisord.conf b/platform/marvell-armhf/docker-syncd-mrvl/supervisord.conf index 408899f8886b..9bf6ab7949ad 100644 --- a/platform/marvell-armhf/docker-syncd-mrvl/supervisord.conf +++ b/platform/marvell-armhf/docker-syncd-mrvl/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/marvell/docker-syncd-mrvl/supervisord.conf b/platform/marvell/docker-syncd-mrvl/supervisord.conf index 73523ac02a12..c5aed305bfd7 100644 --- a/platform/marvell/docker-syncd-mrvl/supervisord.conf +++ b/platform/marvell/docker-syncd-mrvl/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/mellanox/docker-syncd-mlnx/supervisord.conf b/platform/mellanox/docker-syncd-mlnx/supervisord.conf index 55578ff2dced..9311a255b0c8 100644 --- a/platform/mellanox/docker-syncd-mlnx/supervisord.conf +++ b/platform/mellanox/docker-syncd-mlnx/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/nephos/docker-syncd-nephos/supervisord.conf b/platform/nephos/docker-syncd-nephos/supervisord.conf index 55578ff2dced..9311a255b0c8 100644 --- a/platform/nephos/docker-syncd-nephos/supervisord.conf +++ b/platform/nephos/docker-syncd-nephos/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/vs/docker-gbsyncd-vs/supervisord.conf b/platform/vs/docker-gbsyncd-vs/supervisord.conf index 6ba7ecbbdda2..3583ef6b5a8f 100644 --- a/platform/vs/docker-gbsyncd-vs/supervisord.conf +++ b/platform/vs/docker-gbsyncd-vs/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/platform/vs/docker-syncd-vs/supervisord.conf b/platform/vs/docker-syncd-vs/supervisord.conf index 36e33850cbff..7416f23a45e5 100644 --- a/platform/vs/docker-syncd-vs/supervisord.conf +++ b/platform/vs/docker-syncd-vs/supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf b/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf index be52694b78c5..a213a2517866 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf +++ b/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 diff --git a/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf b/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf index 3e485f4ddc35..d5338b18cfa1 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf +++ b/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf @@ -4,7 +4,7 @@ logfile_backups=2 nodaemon=true [eventlistener:dependent-startup] -command=python -m supervisord_dependent_startup +command=python3 -m supervisord_dependent_startup autostart=true autorestart=unexpected startretries=0 From 9aacc4463b964f436198c56ec209991beab1a04a Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Mon, 19 Oct 2020 18:17:14 +0000 Subject: [PATCH 06/10] Remove deps from slave containers --- sonic-slave-buster/Dockerfile.j2 | 3 --- sonic-slave-jessie/Dockerfile.j2 | 3 --- sonic-slave-stretch/Dockerfile.j2 | 3 --- 3 files changed, 9 deletions(-) diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index 101008fa4aac..b58027bf30d4 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -382,9 +382,6 @@ RUN pip3 install "lxml==4.6.1" # For sonic-platform-common testing RUN pip3 install redis -# For supervisor build -RUN apt-get install python-meld3 - # For vs image build RUN pip2 install pexpect==4.6.0 RUN pip3 install pexpect==4.8.0 diff --git a/sonic-slave-jessie/Dockerfile.j2 b/sonic-slave-jessie/Dockerfile.j2 index 32db448de25e..ae5bd2b14f15 100644 --- a/sonic-slave-jessie/Dockerfile.j2 +++ b/sonic-slave-jessie/Dockerfile.j2 @@ -300,9 +300,6 @@ RUN pip install --force-reinstall --upgrade "jinja2>=2.10" # For templating (requiring jinja2) RUN pip install j2cli==0.3.10 -# For supervisor build -RUN pip install meld3 mock - # For vs image build RUN pip install pexpect==4.6.0 diff --git a/sonic-slave-stretch/Dockerfile.j2 b/sonic-slave-stretch/Dockerfile.j2 index 84d87e5973c6..59a7044f3855 100644 --- a/sonic-slave-stretch/Dockerfile.j2 +++ b/sonic-slave-stretch/Dockerfile.j2 @@ -365,9 +365,6 @@ RUN pip3 install "lxml==4.6.1" # For sonic-platform-common testing RUN pip3 install redis -# For supervisor build -RUN pip2 install meld3 mock - # For vs image build RUN pip2 install pexpect==4.6.0 From ee4a9061652eb956ab29fc73add48621aae7e604 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Thu, 29 Oct 2020 18:56:03 +0000 Subject: [PATCH 07/10] Convert supervisor-proc-exit-listener to Python 3 --- files/scripts/supervisor-proc-exit-listener | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/files/scripts/supervisor-proc-exit-listener b/files/scripts/supervisor-proc-exit-listener index 0a10a996825c..7fceaf74eef1 100755 --- a/files/scripts/supervisor-proc-exit-listener +++ b/files/scripts/supervisor-proc-exit-listener @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import getopt import os @@ -7,7 +7,6 @@ import sys import syslog import swsssdk - from supervisor import childutils # Each line of this file should specify either one critical process or one @@ -86,7 +85,7 @@ def main(argv): syslog.syslog(syslog.LOG_ERR, "Unable to retrieve features table from Config DB. Exiting...") sys.exit(2) - if not features_table.has_key(container_name): + if container_name not in features_table: syslog.syslog(syslog.LOG_ERR, "Unable to retrieve feature '{}'. Exiting...".format(container_name)) sys.exit(3) From 5233506efe1705e64280007d92e3040a15877241 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Thu, 29 Oct 2020 22:38:38 +0000 Subject: [PATCH 08/10] Pass 'decode_responses=True' to ConfigDBConnector constructor --- files/scripts/supervisor-proc-exit-listener | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/scripts/supervisor-proc-exit-listener b/files/scripts/supervisor-proc-exit-listener index 7fceaf74eef1..7423c5540380 100755 --- a/files/scripts/supervisor-proc-exit-listener +++ b/files/scripts/supervisor-proc-exit-listener @@ -78,7 +78,7 @@ def main(argv): # Read the status of auto-restart feature from Config_DB. if container_name != 'database': - config_db = swsssdk.ConfigDBConnector() + config_db = swsssdk.ConfigDBConnector(decode_responses=True) config_db.connect() features_table = config_db.get_table(FEATURE_TABLE_NAME) if not features_table: From 506e2ce25021407e2966b283d3736dceef7f4ff5 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Fri, 6 Nov 2020 00:34:34 +0000 Subject: [PATCH 09/10] Don't pass 'decode_responses=True' to ConfigDBConnector constructor, as it is no longer necessary --- files/scripts/supervisor-proc-exit-listener | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/scripts/supervisor-proc-exit-listener b/files/scripts/supervisor-proc-exit-listener index 7423c5540380..7fceaf74eef1 100755 --- a/files/scripts/supervisor-proc-exit-listener +++ b/files/scripts/supervisor-proc-exit-listener @@ -78,7 +78,7 @@ def main(argv): # Read the status of auto-restart feature from Config_DB. if container_name != 'database': - config_db = swsssdk.ConfigDBConnector(decode_responses=True) + config_db = swsssdk.ConfigDBConnector() config_db.connect() features_table = config_db.get_table(FEATURE_TABLE_NAME) if not features_table: From 42104ce7bb8250c0bc41a010e245cca5b49f9730 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Mon, 16 Nov 2020 04:33:49 +0000 Subject: [PATCH 10/10] Skip pcied on virtual switch platform --- device/virtual/x86_64-kvm_x86_64-r0/pmon_daemon_control.json | 1 + 1 file changed, 1 insertion(+) diff --git a/device/virtual/x86_64-kvm_x86_64-r0/pmon_daemon_control.json b/device/virtual/x86_64-kvm_x86_64-r0/pmon_daemon_control.json index c6a21eb19fc5..101db0ffea1a 100644 --- a/device/virtual/x86_64-kvm_x86_64-r0/pmon_daemon_control.json +++ b/device/virtual/x86_64-kvm_x86_64-r0/pmon_daemon_control.json @@ -1,6 +1,7 @@ { "skip_ledd": true, "skip_xcvrd": true, + "skip_pcied": true, "skip_psud": true, "skip_syseepromd": true, "skip_thermalctld": true