-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[ci] Kill hanged docker build process to avoid build timeout issue. #13726
Changes from 1 commit
3c63869
cb27131
f81681a
c60c51d
ab51e63
241a435
85d554e
ae4c756
71565d1
ea5ea58
3988ed5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -110,6 +110,25 @@ jobs: | |
buildSteps: | ||
- template: template-skipvstest.yml | ||
- bash: | | ||
( | ||
while true | ||
do | ||
sleep 120 | ||
now=$(date +%s) | ||
pids=$(ps aux | grep -v grep | grep -E "^.{,100}docker build" | awk '{print$2}') | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You want to list the docker PIDs, right? A small improvement. And etime can be used, not necessary to print the time again. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think 'ps -C' is good. But etime is not good to use. |
||
for pid in $pids | ||
do | ||
start=$(date --date="$(ls -dl /proc/$pid --time-style full-iso | awk '{print$6,$7}')" +%s) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ps -o "lstart" $pid |
||
time_s=$(($now-$start)) | ||
if [[ $time_s -gt $(DOCKER_BUILD_TIMEOUT) ]]; then | ||
echo =========== $(date +%F%T) $time_s &>> target/daemon.log | ||
ps $pid &>> target/daemon.log | ||
sudo kill $pid | ||
fi | ||
done | ||
done | ||
) & | ||
daemon_pid=$! | ||
set -ex | ||
if [ $(GROUP_NAME) == vs ]; then | ||
if [ $(dbg_image) == yes ]; then | ||
|
@@ -167,5 +186,6 @@ jobs: | |
fi | ||
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).bin | ||
fi | ||
sudo kill $daemon_pid | ||
displayName: "Build sonic image" | ||
- template: check-dirty-version.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add the step in a template, and the release branch use the same template?