[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bowtie segfaults in pbuilder chroot at build time (Was: Issue with new version of Bowtie)



On Thu, 2017-09-21 at 15:12 +0200, Andreas Tille wrote:
> 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.
> 

Hi,

True with compat 10 --parallel nor needed.

The shell script changes were due to getting garbled output at end of pbuilder
builds. The changes rectify that.

Still looking at why I get seg faults sometimes and not others.

I have added a few post release git fixes to my tree and will test later.

https://github.com/BenLangmead/bowtie/commit/1f37e940f3df319b78eee0e0f0f87c3d30a
d95de

https://github.com/BenLangmead/bowtie/commit/e31c2e127a5605f7105bd6c31a13a895310
9fa3f

Regards

Phil

-- 
*** If this is a mailing list, I am subscribed, no need to CC me.***

Playing the game for the games sake.

Web: https://kathenas.org

GitLab: https://gitlab.com/kathenas

Twitter: kathenasorg

Instagram: kathenasorg

GPG: 1B97 6556 913F 73F3 9C9B 25C4 2961 D9B6 2017 A57A

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: