* [gentoo-commits] proj/catalyst:pending/mattst88 commit in: targets/support/, catalyst/base/
@ 2020-10-29 16:14 Matt Turner
0 siblings, 0 replies; 3+ messages in thread
From: Matt Turner @ 2020-10-29 16:14 UTC (permalink / raw
To: gentoo-commits
commit: f948f1bd0665f98cd29e33b3da6f15c0b12435b2
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 22 18:19:09 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Oct 29 16:13:47 2020 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=f948f1bd
catalyst: Remove kill_support_pids()
mount_namespaces(7) says
A mount ceases to be a member of a peer group when either the
mount is explicitly unmounted, or when the mount is implicitly
unmounted because a mount namespace is removed (because it has
no more member processes).
Now that the build sequence is executed in its own mount namespace, the
mounts are implicitly unmounted when the last process in the namespace
dies, meaning we don't need to try any funny business around cleaning up
processes in order to unmount.
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
catalyst/base/stagebase.py | 30 +++---------------
targets/support/kill-chroot-pids.sh | 62 -------------------------------------
2 files changed, 4 insertions(+), 88 deletions(-)
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index ec9a8f06..5fc11eae 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -638,17 +638,6 @@ class StageBase(TargetBase, ClearBase, GenBase):
assert self.settings[verify] == "blake2"
self.settings.setdefault("gk_mainargs", []).append("--b2sum")
- def kill_chroot_pids(self):
- log.info('Checking for processes running in chroot and killing them.')
-
- # Force environment variables to be exported so script can see them
- self.setup_environment()
-
- killcmd = normpath(self.settings["sharedir"] +
- self.settings["shdir"] + "/support/kill-chroot-pids.sh")
- if os.path.exists(killcmd):
- cmd([killcmd], env=self.env)
-
def mount_safety_check(self):
"""
Check and verify that none of our paths in mypath are mounted. We don't
@@ -920,18 +909,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
try:
cxt = libmount.Context(target=str(target))
cxt.umount()
- except OSError:
- log.warning('First attempt to unmount failed: %s', target)
- log.warning('Killing any pids still running in the chroot')
-
- self.kill_chroot_pids()
-
- try:
- cxt.umount()
- except OSError as e:
- umount_failed = True
- log.warning("Couldn't umount: %s, %s", target,
- e.strerror)
+ except OSError as e:
+ log.warning("Couldn't umount: %s, %s", target,
+ e.strerror)
+ umount_failed = True
if umount_failed:
# if any bind mounts really failed, then we need to raise
@@ -1382,9 +1363,6 @@ class StageBase(TargetBase, ClearBase, GenBase):
def run(self):
self.chroot_lock.write_lock()
- # Kill any pids in the chroot
- self.kill_chroot_pids()
-
# Check for mounts right away and abort if we cannot unmount them
self.mount_safety_check()
diff --git a/targets/support/kill-chroot-pids.sh b/targets/support/kill-chroot-pids.sh
deleted file mode 100755
index ea8ee402..00000000
--- a/targets/support/kill-chroot-pids.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-# Script to kill processes found running in the chroot.
-
-if [ "${clst_chroot_path}" == "/" ]
-then
- echo "Aborting .... clst_chroot_path is set to /"
- echo "This is very dangerous"
- exit 1
-fi
-
-if [ "${clst_chroot_path}" == "" ]
-then
- echo "Aborting .... clst_chroot_path is NOT set"
- echo "This is very dangerous"
- exit 1
-fi
-
-j=0
-declare -a pids
-# Get files and dirs in /proc
-for i in `ls /proc`
-do
- # Test for directories
- if [ -d /proc/$i ]
- then
- # Search for exe containing string inside ${clst_chroot_path}
- ls -la --color=never /proc/$i 2>&1 |grep exe|grep ${clst_chroot_path} > /dev/null
-
- # If found
- if [ $? == 0 ]
- then
- # Assign the pid into the pids array
- pids[$j]=$i
- j=$(($j+1))
- fi
- fi
-done
-
-if [ ${j} -gt 0 ]
-then
- echo
- echo "Killing process(es)"
- echo "pid: process name"
- for pid in ${pids[@]}
- do
- P_NAME=$(ls -la --color=never /proc/${pid} 2>&1 |grep exe|grep ${clst_chroot_path}|awk '{print $11}')
- echo ${pid}: ${P_NAME}
- done
- echo
- echo "Press Ctrl-C within 10 seconds to abort"
-
- sleep 10
-
- for pid in ${pids[@]}
- do
- kill -9 ${pid}
- done
-
- # Small sleep here to give the process(es) a chance to die before running unbind again.
- sleep 5
-
-fi
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/catalyst:pending/mattst88 commit in: targets/support/, catalyst/base/
@ 2021-01-18 19:53 Matt Turner
0 siblings, 0 replies; 3+ messages in thread
From: Matt Turner @ 2021-01-18 19:53 UTC (permalink / raw
To: gentoo-commits
commit: 63ca82327ca197fc2264f770f516a0e67eddfb42
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 18 03:09:30 2021 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Mon Jan 18 19:50:38 2021 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=63ca8232
catalyst: Call config_profile_link for all targets
This reverts the following two commits, which have no documented
rationale.
Revert "Set the profile by calling eselect."
This reverts commit 90c03f9dc255ba89849e46490f9ead7ab3921950.
Revert "Drop config_profile_link from the action_sequence for the generic stage."
This reverts commit 3bd10159bf7cfe14b6d8a8218b94eca73be4c997.
Doing so improves the code in two ways:
1) it makes prepare_sequence identical across all targets, which will
allow deduplicating some code
2) it no longer calls eselect profile each time chroot-functions.sh
is sourced (even for those targets that were still calling
config_profile_link)
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
catalyst/base/stagebase.py | 3 ++-
targets/support/chroot-functions.sh | 3 ---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 447e073d..53b0a224 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -500,6 +500,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
"""Set basic stage1, 2, 3 action sequences"""
self.prepare_sequence.extend([
self.unpack,
+ self.config_profile_link,
self.setup_confdir,
self.portage_overlay,
])
@@ -771,7 +772,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
log.info('Configuring profile link...')
make_profile = Path(self.settings['chroot_path'] + self.settings['port_conf'],
'make.profile')
- make_profile.unlink()
+ make_profile.unlink(missing_ok=True)
make_profile.symlink_to(Path('../..' + self.settings['repo_basedir'],
self.settings['repo_name'],
'profiles',
diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh
index 2aec018e..88465c31 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -1,8 +1,5 @@
#!/bin/bash
-# Set the profile
-eselect profile set ${clst_target_profile}
-
# Trap these signals and kill ourselves if received
# Force ourselves to die if any of these signals are received
# most likely our controlling terminal is gone
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/catalyst:pending/mattst88 commit in: targets/support/, catalyst/base/
@ 2021-01-28 1:54 Matt Turner
0 siblings, 0 replies; 3+ messages in thread
From: Matt Turner @ 2021-01-28 1:54 UTC (permalink / raw
To: gentoo-commits
commit: a500400592aaa309602331705b27cdbee8ae58c4
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 18 03:09:30 2021 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Sat Jan 23 16:19:07 2021 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=a5004005
catalyst: Call config_profile_link for all targets
This reverts the following two commits, which have no documented
rationale.
Revert "Set the profile by calling eselect."
This reverts commit 90c03f9dc255ba89849e46490f9ead7ab3921950.
Revert "Drop config_profile_link from the action_sequence for the generic stage."
This reverts commit 3bd10159bf7cfe14b6d8a8218b94eca73be4c997.
Doing so improves the code in two ways:
1) it makes prepare_sequence identical across all targets, which will
allow deduplicating some code
2) it no longer calls eselect profile each time chroot-functions.sh
is sourced (even for those targets that were still calling
config_profile_link)
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
catalyst/base/stagebase.py | 3 ++-
targets/support/chroot-functions.sh | 3 ---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 447e073d..53b0a224 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -500,6 +500,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
"""Set basic stage1, 2, 3 action sequences"""
self.prepare_sequence.extend([
self.unpack,
+ self.config_profile_link,
self.setup_confdir,
self.portage_overlay,
])
@@ -771,7 +772,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
log.info('Configuring profile link...')
make_profile = Path(self.settings['chroot_path'] + self.settings['port_conf'],
'make.profile')
- make_profile.unlink()
+ make_profile.unlink(missing_ok=True)
make_profile.symlink_to(Path('../..' + self.settings['repo_basedir'],
self.settings['repo_name'],
'profiles',
diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh
index 2aec018e..88465c31 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -1,8 +1,5 @@
#!/bin/bash
-# Set the profile
-eselect profile set ${clst_target_profile}
-
# Trap these signals and kill ourselves if received
# Force ourselves to die if any of these signals are received
# most likely our controlling terminal is gone
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-28 1:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-29 16:14 [gentoo-commits] proj/catalyst:pending/mattst88 commit in: targets/support/, catalyst/base/ Matt Turner
-- strict thread matches above, loose matches on Subject: below --
2021-01-18 19:53 Matt Turner
2021-01-28 1:54 Matt Turner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox