reproducible debian: build.sh: apply the 120m timeout directly to diffoscope…

reproducible debian: build.sh: apply the 120m timeout directly to diffoscope instead of the wrapping schroot

We are seeing schroot errors like the following, that I believe would be
fixed by SIGTERMing diffoscope directly instead of schroot → sh →
diffoscope.

+ local TIMEOUT=120m
+ DBDSUITE=unstable
+ '[' unstable = experimental ']'
+ set -x
++ mktemp --tmpdir=/srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc -d dbd-tmp-XXXXXXX
+ local TEMP=/srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/dbd-tmp-aiOGwgn
++ schroot --begin-session -c chroot:jenkins-reproducible-unstable-diffoscope
+ local session=jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f
++ schroot --directory /srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc --run-session -c jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f diffoscope -- --version
+ DIFFOSCOPE='diffoscope 96'
+ log_info 'diffoscope 96 will be used to compare the two builds:'
+ _log I: 'diffoscope 96 will be used to compare the two builds:'
+ local prefix=I:
+ shift 1
+ tee -a /var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/arm64/gcc-5_5.5.0-12.rbuild.log
++ date -u
+ echo -e 'Wed Jun 20 09:34:15 UTC 2018  I: diffoscope 96 will be used to compare the two builds:'
Wed Jun 20 09:34:15 UTC 2018  I: diffoscope 96 will be used to compare the two builds:
+ set +e
+ set -x
+ timeout 120m nice schroot --directory /srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc --run-session -c jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f -- sh -c 'export TMPDIR=/srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/dbd-tmp-aiOGwgn ; diffoscope 			--html /srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/gcc-5_5.5.0-12.diffoscope.html 			--text /srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/gcc-5_5.5.0-12.diffoscope.txt 			--profile=- 			/srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/b1/gcc-5_5.5.0-12_arm64.changes 			/srv/reproducible-results/rbuild-debian/tmp.OQJmsWHPbc/b2/gcc-5_5.5.0-12_arm64.changes'
+ RESULT=124
+ false
+ set +x
E: Caught signal ‘Terminated’: terminating immediately
E: Caught signal ‘Terminated’
E: 10mount: umount: /run/schroot/mount/jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f/srv/reproducible-results: target is busy
E: 10mount:         (In some cases useful info about processes that
E: 10mount:          use the device is found by lsof(8) or fuser(1).)
E: 10mount: umount: /run/schroot/mount/jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f: target is busy
E: 10mount:         (In some cases useful info about processes that
E: 10mount:          use the device is found by lsof(8) or fuser(1).)
E: 10mount: rmdir: failed to remove '/var/run/schroot/mount/jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f': Device or resource busy
E: jenkins-reproducible-unstable-diffoscope-ebd86728-8ca4-4419-8c00-e9b25b6f286f: Chroot setup failed: stage=setup-stop
Starting cleanup.
Signed-off-by: Mattia Rizzolo's avatarMattia Rizzolo <mattia@debian.org>
parent 968699f6
......@@ -392,14 +392,12 @@ call_diffoscope_on_changes_files() {
# filter lines describing .buildinfo files from .changes file
sed -i -e '/^ [a-f0-9]\{32,64\} .*\.buildinfo$/d' b{1,2}/$CHANGES
local TMPLOG=$(mktemp --tmpdir=$TMPDIR)
local TIMEOUT="120m"
local TIMEOUT="120m" # note that below there is another instance of this + 5 minutes
DBDSUITE=$SUITE
if [ "$SUITE" = "experimental" ] ; then
# there is no extra diffoscope-schroot for experimental ( because we specical case ghc enough already )
DBDSUITE="unstable"
fi
# to debug diffoscope/schroot problems
set -x
# diffoscope temporary files are going to end up in this
local TEMP=$(mktemp --tmpdir=$TMPDIR -d dbd-tmp-XXXXXXX)
local session="$(schroot --begin-session -c "chroot:jenkins-reproducible-$DBDSUITE-diffoscope")"
......@@ -407,11 +405,11 @@ call_diffoscope_on_changes_files() {
log_info "$DIFFOSCOPE will be used to compare the two builds:"
set +e
set -x
( timeout $TIMEOUT nice schroot \
( timeout 125m nice schroot \
--directory $TMPDIR \
--run-session \
-c "$session" \
-- sh -c "export TMPDIR=$TEMP ; diffoscope \
-- sh -c "export TMPDIR=$TEMP ; timeout $TIMEOUT diffoscope \
--html $TMPDIR/${DBDREPORT} \
--text $TMPDIR/$DBDTXT \
--profile=- \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment