Hi Phil, thanks for your attempt to help.
On Thu, Sep 21, 2017 at 12:15:50PM +0100, Phil Wyett wrote: > 1. Parallel build. > > // Diff starts on line below. > diff --git a/debian/rules b/debian/rules > index 7919361..b536ce7 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -11,7 +11,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all > pkg := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p') > > %: > - dh $@ > + dh $@ --parallel > > override_dh_auto_build: > $(MAKE) allall > // Diff ends on line above. That's redundant since debian/compat=10 is used. > 2. At error the unit tests should dump a diff to std error. > > The script is very old style and has errors. Well, its old style but you replaced `` by $() which has the same result und adding "" around variables is probably better style but not solving any problem here. Or am I missing something? > // Diff starts on line below. > diff --git a/debian/tests/run-unit-test b/debian/tests/run-unit-test > index dfcb0e5..1335a4b 100644 > --- a/debian/tests/run-unit-test > +++ b/debian/tests/run-unit-test > @@ -5,19 +5,19 @@ if [ "$1" = "test_at_build_time" ] ; then > else > pkg=bowtie > if [ "$ADTTMP" = "" ] ; then > - ADTTMP=`mktemp -d /tmp/${pkg}-test.XXXXXX` > + ADTTMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX) > fi > - mkdir -p $ADTTMP/tests > - cp -a debian/tests/example* $ADTTMP/tests > - cd $ADTTMP > - cp -a /usr/share/doc/bowtie/examples/indexes $ADTTMP > + mkdir -p "$ADTTMP"/tests > + cp -a debian/tests/example* "$ADTTMP"/tests > + cd "$ADTTMP" > + cp -a /usr/share/doc/bowtie/examples/indexes "$ADTTMP" > fi > > check_result () { > - EDIFF=`diff -u tests/$1.out $1.out` > + EDIFF=$(diff -u tests/"$1".out "$1".out) > if ! $EDIFF ; then > echo "Error testing example" > - echo $EDIFF > + echo "$EDIFF" > exit 1 > else > echo "$1 OK" > // Diff ends on line above. > > A diff is now outputted at example6. That's no change at all. The point is that *after* outputting the diff (which is the very same as without your changes) the segfault happens again. The *very* strange thing is that the test suite works until example5 bit if I force an error before running the script and run it manually inside the chroot root@wr-linux01:/# cd build/bowtie-1.2.1.1+dfsg/ root@wr-linux01:/build/bowtie-1.2.1.1+dfsg# ./bowtie Segmentation fault root@wr-linux01:/build/bowtie-1.2.1.1+dfsg# sh debian/tests/run-unit-test test_at_build_time Segmentation fault debian/tests/run-unit-test: 18: debian/tests/run-unit-test: ---: not found Error testing example --- tests/example1.out 2017-09-21 12:55:02.000000000 +0000 +++ example1.out 2017-09-21 13:07:54.755536757 +0000 @@ -1,5 +0,0 @@ -- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G -- gi|110640213|ref|NC_008253.1| 2852852 8:T>A -- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G -- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T -+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T root@wr-linux01:/build/bowtie-1.2.1.1+dfsg# bash debian/tests/run-unit-test test_at_build_time debian/tests/run-unit-test: line 27: 24652 Segmentation fault bowtie -a -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT > example1.out debian/tests/run-unit-test: line 18: ---: command not found Error testing example --- tests/example1.out 2017-09-21 12:55:02.000000000 +0000 +++ example1.out 2017-09-21 13:08:04.855722853 +0000 @@ -1,5 +0,0 @@ -- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G -- gi|110640213|ref|NC_008253.1| 2852852 8:T>A -- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G -- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T -+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T The problem happens even for example1. So I keep on thinking that running inside the chroot is evident to reproduce the problem and the script itself is not the problem even if it produces strange effects. I would love to hear further opinions to the gdb output I provided in my first mail to this thread on debian-mentors. Kind regards Andreas. -- http://fam-tille.de