From c5c94eebf3fd8690ce32f98d9950fd9efcfbc67f Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 15 Feb 2022 14:13:07 -0500 Subject: [PATCH] re-wrap all bundle invocations with flock refs #18770 Apparently "bundle exec" can still mess with global gems, causing conflicts and broken installs, so it needs to be wrapped with flock. binstubs are presumably safe. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- tools/arvbox/lib/arvbox/docker/api-setup.sh | 6 +++--- tools/arvbox/lib/arvbox/docker/common.sh | 2 +- tools/arvbox/lib/arvbox/docker/service/doc/run-service | 2 +- tools/arvbox/lib/arvbox/docker/service/gitolite/run-service | 2 +- .../arvbox/lib/arvbox/docker/service/workbench/run-service | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/arvbox/lib/arvbox/docker/api-setup.sh b/tools/arvbox/lib/arvbox/docker/api-setup.sh index 4af0cca0ed..29cea1ecbe 100755 --- a/tools/arvbox/lib/arvbox/docker/api-setup.sh +++ b/tools/arvbox/lib/arvbox/docker/api-setup.sh @@ -56,16 +56,16 @@ EOF fi if ! test -f $ARVADOS_CONTAINER_PATH/api_database_setup ; then - bin/bundle exec rake db:setup + flock $GEMLOCK bin/bundle exec rake db:setup touch $ARVADOS_CONTAINER_PATH/api_database_setup fi if ! test -s $ARVADOS_CONTAINER_PATH/superuser_token ; then - superuser_tok=$(bin/bundle exec ./script/create_superuser_token.rb) + superuser_tok=$(flock $GEMLOCK bin/bundle exec ./script/create_superuser_token.rb) echo "$superuser_tok" > $ARVADOS_CONTAINER_PATH/superuser_token fi rm -rf tmp mkdir -p tmp/cache -bin/bundle exec rake db:migrate +flock $GEMLOCK bin/bundle exec rake db:migrate diff --git a/tools/arvbox/lib/arvbox/docker/common.sh b/tools/arvbox/lib/arvbox/docker/common.sh index f391376f39..c44e7c4101 100644 --- a/tools/arvbox/lib/arvbox/docker/common.sh +++ b/tools/arvbox/lib/arvbox/docker/common.sh @@ -12,6 +12,7 @@ export npm_config_cache_min=Infinity export R_LIBS=/var/lib/Rlibs export HOME=$(getent passwd arvbox | cut -d: -f6) export ARVADOS_CONTAINER_PATH=/var/lib/arvados-arvbox +GEMLOCK=/var/lib/arvados/lib/ruby/gems/gems.lock defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }') dockerip=$(/sbin/ip route | grep default | awk '{ print $3 }') @@ -62,7 +63,6 @@ else fi run_bundler() { - GEMLOCK=/var/lib/arvados/lib/ruby/gems/gems.lock flock $GEMLOCK /var/lib/arvados/bin/gem install --no-document bundler:$BUNDLER_VERSION if test -f Gemfile.lock ; then frozen=--frozen diff --git a/tools/arvbox/lib/arvbox/docker/service/doc/run-service b/tools/arvbox/lib/arvbox/docker/service/doc/run-service index aa7e0822e2..e9092f3702 100755 --- a/tools/arvbox/lib/arvbox/docker/service/doc/run-service +++ b/tools/arvbox/lib/arvbox/docker/service/doc/run-service @@ -29,4 +29,4 @@ if test "$1" = "--only-deps" ; then fi cd /usr/src/arvados/doc -bundle exec rake generate baseurl=http://$localip:${services[doc]} arvados_api_host=$localip:${services[controller-ssl]} arvados_workbench_host=http://$localip +flock $GEMLOCK bundle exec rake generate baseurl=http://$localip:${services[doc]} arvados_api_host=$localip:${services[controller-ssl]} arvados_workbench_host=http://$localip diff --git a/tools/arvbox/lib/arvbox/docker/service/gitolite/run-service b/tools/arvbox/lib/arvbox/docker/service/gitolite/run-service index 55aff375fc..5f2cbc8825 100755 --- a/tools/arvbox/lib/arvbox/docker/service/gitolite/run-service +++ b/tools/arvbox/lib/arvbox/docker/service/gitolite/run-service @@ -125,6 +125,6 @@ $RAILS_ENV: EOF while true ; do - bundle exec script/arvados-git-sync.rb $RAILS_ENV + flock $GEMLOCK bundle exec script/arvados-git-sync.rb $RAILS_ENV sleep 120 done diff --git a/tools/arvbox/lib/arvbox/docker/service/workbench/run-service b/tools/arvbox/lib/arvbox/docker/service/workbench/run-service index 20ef9fcaf6..d8332eba93 100755 --- a/tools/arvbox/lib/arvbox/docker/service/workbench/run-service +++ b/tools/arvbox/lib/arvbox/docker/service/workbench/run-service @@ -34,7 +34,7 @@ cat >config/application.yml <