Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-03 Thread Sascha Steinbiss
Hi,

[…]
> I'm not going to ask for a "mathematical proof" that the code is correct
> as a condition to close the bug, but on the other hand, the fact that
> it FTBFS for me not once but several times (on different machines) is
> an indication that there is a bug somewhere, so if there is a bug, it
> should be investigated, not closed.

Point taken, maybe suggesting to close it was a bit premature.

> My recommended debug procedure for this is not to build it many times
> as if we were rolling a dice, but instead examine the code, examine
> the build log, and try to see how such thing may happen based
> on what the makefile and build system does.

IMHO the question is what code to look at. The information the build log 
provides ends at xsltproc called by a2x and the nondescriptive error message 
you encountered. I admit that it can’t be ruled out that GenomeTools (or its 
build system) might trigger the problem by, for example, nondeterministically 
creating bad AsciiDoc input. I have just revisited at the GenomeTools code 
creating the input and I can’t see a problem; it has worked well for years for 
me, in Debian builds and otherwise.

Another possibility would be the a2x wrapper in the strip-nondeterminism 
directory which wraps the call in faketime to create reproducible manpages — 
but given that a2x gets indeed run up to the point of calling xsltproc I’d say 
that’s unlikely.

Doing some research on existing bugs, #753166 [1] seems to address a similar 
case and it was fixed by the maintainer by adding a build-dep on docbook-xml. 
This sounds reasonable, given that the code snippet in [2] seems to set exit 
code 6 when some XML file could not be read. I can add a dependency on 
docbook-xml to be on the safe side (up to now, docbook-xsl had been enough for 
me) but it’s difficult to even find out what file it’s trying to access without 
a means to reproduce a failure.
Outside of Debian this issue [3] also seems to have popped up in an unrelated 
project, interestingly also with regard to manpage creation. They also state 
that it is 'a rare issue and can hardly be reproduced’ and only suggest as a 
workaround to ‘run make […] again’.

Since I also have other things on my agenda ATM I will for now do an upload 
adding the new build dependency and fixing #836283, keeping this bug open (and 
a watchful eye on rebuilds in the meantime).

> In many cases, a close look at the code and the way it fails leads to
> the reason for the random failures. Example:
> 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817033#15

Interesting read indeed!

Anyway, thanks for noticing this and for doing regular rebuilds at all. I 
wasn’t meaning to discourage being inquisitive :)

Cheers
Sascha

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753166
[2] https://codesearch.debian.net/search?q=errorno+%3D+6+package%3Alibxslt
[3] 
https://knowledge.windriver.com/en-us/000_Products/000/010/040/060/000/000_CGP8-291_%3A_cluster-glue_1.0.12_failed_to_compile_rarely_-_target_'hb_report.8'_failed


signature.asc
Description: Message signed with OpenPGP using GPGMail


Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-02 Thread Santiago Vila
On Sat, Sep 03, 2016 at 12:50:35AM +0100, Sascha Steinbiss wrote:

> I must admit that I’m inclined to either close this bug or leave it
> open with the comment that the issue is currently not
> reproducible. At least it’s difficult to debug if I can’t get it to
> fail…

This reminds me of Kunth's quote: "Beware of bugs in the above code; I
have only proved it correct, not tried it".

I'm not going to ask for a "mathematical proof" that the code is correct
as a condition to close the bug, but on the other hand, the fact that
it FTBFS for me not once but several times (on different machines) is
an indication that there is a bug somewhere, so if there is a bug, it
should be investigated, not closed.

My recommended debug procedure for this is not to build it many times
as if we were rolling a dice, but instead examine the code, examine
the build log, and try to see how such thing may happen based
on what the makefile and build system does.

In many cases, a close look at the code and the way it fails leads to
the reason for the random failures. Example:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817033#15

Thanks.



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-02 Thread Sascha Steinbiss
Hi Santiago,

>> Ah, this looks suspicious indeed and falls directly into the gap. (By
>> the way, are these build logs available somewhere? Sounds quite useful
>> to have such a build history!)
> 
> I have put 15 different build logs here, temporarily:
> 
> https://people.debian.org/~sanvila/genometools/genometools.tar.gz
> 
> (I did more tests and now it does not fail anymore!)

I noticed the same, I couldn’t get it to fail at all on my side, even on a VM 
with 512MB RAM and no swap!
See https://paste.debian.net/805247/

> Here, machines called "uranio*" have 768 MB of RAM (plus 1 GB swap).
> The others have 3GB RAM at least.
> 
> Also, "Distribution: stretch" means I'm using eatmydata, while
> "Distribution: stretch-keepmydata" means I'm not.

Yes, doesn’t look like it’s dependent on that. Very mysterious.

> Just please make sure first (well, reasonably) that genometools is not
> contributing to the problem before reassigning.

Sure.

> For example, I set DEB_BUILD_OPTIONS = 'parallel=1' in the environment.
> When a package does not honor that, it ends up using double amount of
> memory without it being really necessary.

This is true (and I will keep it in mind). However, the situation you mention 
in #836283 only affects the build-time tests, which are not likely to use a lot 
of memory here because they are extremely slimmed down and only act on small 
inputs (btw, I’m also upstream for GenomeTools).

> Also, if you are calling external programs which accept command line
> options to enable/disable parallel processing, make sure that no
> parallel processing is happening (when DEB_BUILD_OPTIONS is setup
> that way).

OK. The default for these tests, for example, is to use 1 thread by default if 
no specific value is given.

I must admit that I’m inclined to either close this bug or leave it open with 
the comment that the issue is currently not reproducible. At least it’s 
difficult to debug if I can’t get it to fail…
What do you think?

Cheers
Sascha


Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-01 Thread Sascha Steinbiss
Hi Santiago,

>>> This used to work in the past, so I would look for build-dependencies
>>> which may have changed their behaviour recently.
>>
>> Both docbook-xsl and asciidoc, which may be the relevant build-deps here, 
>> didn’t have any recent uploads.
> 
> I found a good candidate:
> 
> https://packages.qa.debian.org/libx/libxslt.html

Yup, one of these transitive dependencies...

> This is the timeline:
> 
> 2016-08-21 successful build in stretch in low memory machine
> 2016-08-23 xsltproc (from source package libxslt) version 1.1.29-1 reaches 
> testing
> 2016-08-31 failed build in stretch in a low memory machine

Ah, this looks suspicious indeed and falls directly into the gap. (By
the way, are these build logs available somewhere? Sounds quite useful
to have such a build history!)

> Should I reassign this to xsltproc, asking for the error message to be
> improved?

Yes please. In any case, I can't see what I could do in the genometools
package: it calls a2x, which is part of asciidoc, which in turn uses
xsltproc. As it seems to be the culprit, maybe their maintainer can have
a look at error reporting.

In any case, I will try to confirm the connection with memory shortage
in any case later.

Thanks,
Sascha


-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-01 Thread Santiago Vila
On Wed, 31 Aug 2016, Sascha Steinbiss wrote:

> > This used to work in the past, so I would look for build-dependencies
> > which may have changed their behaviour recently.
> 
> Both docbook-xsl and asciidoc, which may be the relevant build-deps here, 
> didn’t have any recent uploads.

I found a good candidate:

https://packages.qa.debian.org/libx/libxslt.html

This is the timeline:

2016-08-21 successful build in stretch in low memory machine
2016-08-23 xsltproc (from source package libxslt) version 1.1.29-1 reaches 
testing
2016-08-31 failed build in stretch in a low memory machine

Should I reassign this to xsltproc, asking for the error message to be
improved?

Thanks.



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-01 Thread Santiago Vila
On Thu, Sep 01, 2016 at 09:52:28AM +0100, Sascha Steinbiss wrote:
> Hi Santiago,
> 
> thanks for this useful info.
> 
> > Status: successful  genometools_1.5.9+ds-2_amd64-20160811T2351Z
> > Status: successful  genometools_1.5.9+ds-2_amd64-20160816T1151Z
> > Status: successful  genometools_1.5.9+ds-2_amd64-20160821T235102Z
> > Status: failed  genometools_1.5.9+ds-2_amd64-20160831T144105Z
> > Status: failed  genometools_1.5.9+ds-2_amd64-20160831T152720Z
> > 
> > All those builds were done in machines with 768 MB of RAM
> > (and 1GB of swap).
> > 
> > Why it built ok in the past and now it does not build?
> 
> Good question. It could have to do with overall memory availability on
> this machine?

That "has" to be the reason, because I don't have a better theory.

But the only task those machines have is building packages. The
timestamp for /etc/fstab is 2016-08-10, so they have used the same
swap file (and therefore the same amount of swap) for all the builds.

It is still unknown why it built in the past and not anymore.

> Did the run you started on the machine with more memory
> eventualy finish?

Yes, on three other machines having 4 GB of swap and at least 3GB of RAM
the build succeeded.

> When I have some time I will try to reduce the amount of memory in my
> building VM to find out what the critical value is.

Thanks.



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-09-01 Thread Sascha Steinbiss
Hi Santiago,

thanks for this useful info.

> Status: successful  genometools_1.5.9+ds-2_amd64-20160811T2351Z
> Status: successful  genometools_1.5.9+ds-2_amd64-20160816T1151Z
> Status: successful  genometools_1.5.9+ds-2_amd64-20160821T235102Z
> Status: failed  genometools_1.5.9+ds-2_amd64-20160831T144105Z
> Status: failed  genometools_1.5.9+ds-2_amd64-20160831T152720Z
> 
> All those builds were done in machines with 768 MB of RAM
> (and 1GB of swap).
> 
> Why it built ok in the past and now it does not build?

Good question. It could have to do with overall memory availability on
this machine? Did the run you started on the machine with more memory
eventualy finish?

When I have some time I will try to reduce the amount of memory in my
building VM to find out what the critical value is.

Cheers
Sascha


-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-08-31 Thread Santiago Vila
This is my build history:

Status: successful  genometools_1.5.9+ds-2_amd64-20160811T2351Z
Status: successful  genometools_1.5.9+ds-2_amd64-20160816T1151Z
Status: successful  genometools_1.5.9+ds-2_amd64-20160821T235102Z
Status: failed  genometools_1.5.9+ds-2_amd64-20160831T144105Z
Status: failed  genometools_1.5.9+ds-2_amd64-20160831T152720Z

All those builds were done in machines with 768 MB of RAM
(and 1GB of swap).

Why it built ok in the past and now it does not build?



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-08-31 Thread Santiago Vila
severity 836230 normal
retitle 836230 FTBFS in a low memory machine with poor error message
thanks

On Wed, Aug 31, 2016 at 10:10:40PM +0100, Sascha Steinbiss wrote:

> > I tried to build this package in stretch with "dpkg-buildpackage -A"
> > (which is what the "Arch: all" autobuilder would do to build it)
> > but it failed:
> […]
> > a2x: ERROR: "xsltproc"  --stringparam callout.graphics 0 --stringparam 
> > navig.graphics 0 --stringparam admon.textlabel 1 --stringparam 
> > admon.graphics 0  "/etc/asciidoc/docbook-xsl/manpage.xsl" 
> > "/<>/genometools-1.5.9+ds/doc/manpages/gt.xml" returned non-zero 
> > exit
> 
> Unfortunately, I can not reproduce this. For me the package builds with no 
> problem (-A and -B with gbp-buildpackage and cowbuilder in a freshly updated 
> stretch chroot). Build logs can be found at 
> http://dropbox.tetrinetsucht.de/debian/ (too large for paste.debian.net).
> 
> > This used to work in the past, so I would look for build-dependencies
> > which may have changed their behaviour recently.
> 
> Both docbook-xsl and asciidoc, which may be the relevant build-deps here, 
> didn’t have any recent uploads.
> 
> I am wondering if anyone may have any hints?

Sorry, I thought this was easily reproducible because it happened in
two different machines.

But now I see that the two machines have 768 MB of RAM.

I'm now building on machines with more memory, and so far it does not
seem to fail when I have 3GB of RAM.

To reproduce, please try building on a machine with only 768 MB of RAM.

If that's the reason for the build failure, then the problem is that
the build does not say "out of memory" or anything like that. Instead
it says "exit status 6" which does not help very much to know
what exactly went wrong.

Thanks.



Bug#836230: [Debian-med-packaging] Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-08-31 Thread Sascha Steinbiss
Hi Santiago,

thanks for reporting this.

> I tried to build this package in stretch with "dpkg-buildpackage -A"
> (which is what the "Arch: all" autobuilder would do to build it)
> but it failed:
[…]
> a2x: ERROR: "xsltproc"  --stringparam callout.graphics 0 --stringparam 
> navig.graphics 0 --stringparam admon.textlabel 1 --stringparam admon.graphics 
> 0  "/etc/asciidoc/docbook-xsl/manpage.xsl" 
> "/<>/genometools-1.5.9+ds/doc/manpages/gt.xml" returned non-zero 
> exit

Unfortunately, I can not reproduce this. For me the package builds with no 
problem (-A and -B with gbp-buildpackage and cowbuilder in a freshly updated 
stretch chroot). Build logs can be found at 
http://dropbox.tetrinetsucht.de/debian/ (too large for paste.debian.net).

> This used to work in the past, so I would look for build-dependencies
> which may have changed their behaviour recently.

Both docbook-xsl and asciidoc, which may be the relevant build-deps here, 
didn’t have any recent uploads.

I am wondering if anyone may have any hints?

Cheers
Sascha


signature.asc
Description: Message signed with OpenPGP using GPGMail


Bug#836230: genometools: FTBFS in testing (a2x: ERROR: "xsltproc" returned non-zero exit status 6)

2016-08-31 Thread Santiago Vila
Package: src:genometools
Version: 1.5.9+ds-2
Severity: serious

Dear maintainer:

I tried to build this package in stretch with "dpkg-buildpackage -A"
(which is what the "Arch: all" autobuilder would do to build it)
but it failed:


[...]
 debian/rules build-indep
dh build-indep --with python2
   dh_testdir -i
   dh_update_autotools_config -i
   dh_auto_configure -i
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<>/genometools-1.5.9+ds'
faketime -f "`TZ=UTC date -d @1469271266 +'%Y-%m-%d %H:%M:%S'`" dh_auto_build 
-- useshared=yes x32=no 64bit=yes errorcheck=no all docs manuals
make -j1 useshared=yes x32=no 64bit=yes errorcheck=no all docs manuals
make[2]: Entering directory '/<>/genometools-1.5.9+ds'
[create obj/gt_config.h]
[compile alphabet.o]
[compile array.o]

[... snipped ...]

cp -r gtdata /<>/genometools-1.5.9+ds/debian/tmp/usr/bin
test -d 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/core \
  || mkdir -p 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/core
cp src/core/*_api.h 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/core
test -d 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/extended \
  || mkdir -p 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/extended
cp src/extended/*_api.h 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/extended
test -d 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/annotationsketch
 \
  || mkdir -p 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/annotationsketch
cp src/annotationsketch/*_api.h \
  
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/annotationsketch
test -d 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/ltr \
  || mkdir -p 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/ltr
cp src/ltr/*_api.h 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools/ltr
cp obj/gt_config.h 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools
cp src/genometools.h 
/<>/genometools-1.5.9+ds/debian/tmp/usr/include/genometools
test -d /<>/genometools-1.5.9+ds/debian/tmp/usr/lib || mkdir -p 
/<>/genometools-1.5.9+ds/debian/tmp/usr/lib
cp lib/libgenometools.a /<>/genometools-1.5.9+ds/debian/tmp/usr/lib
cp lib/libgenometools.so.0 /<>/genometools-1.5.9+ds/debian/tmp/usr/lib
ln -fs 
/<>/genometools-1.5.9+ds/debian/tmp/usr/lib/libgenometools.so.0 
/<>/genometools-1.5.9+ds/debian/tmp/usr/lib/libgenometools.so
[build config script install]
sed -e 's!@CC@!cc!' -e 's!@CFLAGS@!-g -O2 
-fdebug-prefix-map=/<>/genometools-1.5.9+ds=. -fPIE 
-fstack-protector-strong -Wformat -Werror=format-security!' \
  -e 
's!@CPPFLAGS@!-I\\"/<>/genometools-1.5.9+ds/debian/tmp/usr/include\\" 
-Wdate-time -D_FORTIFY_SOURCE=2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-DHAVE_MEMMOVE -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DLUA_DL_DLOPEN 
-DLUA_USE_MKSTEMP -DHAVE_SQLITE!' \
  -e 's!@CXX@!g++!' -e 's!@CXXFLAGS@!-g -O2 
-fdebug-prefix-map=/<>/genometools-1.5.9+ds=. -fPIE 
-fstack-protector-strong -Wformat -Werror=format-security!' \
  -e 's!@LDFLAGS@!-L/<>/genometools-1.5.9+ds/debian/tmp/usr/lib -fPIE 
-pie -Wl,-z,relro -Wl,-z,now -L/usr/local/lib!' \
  -e 's!@LIBS@! -lm -lbz2 -lz -lexpat -llua5.1 -llua5.1-lpeg -llua5.1 
-llua5.1-md5 -llua5.1 -llua5.1-filesystem -llua5.1 -llua5.1-des56 -llua5.1 
-lbam -ltre -Wl,-z,relro -lm -lpthread -ldl -lpango-1.0 -lgobject-2.0 
-lglib-2.0 -lcairo -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 
-lcairo -lsqlite3!' -e "s!@VERSION@!`cat VERSION`!" \
  -e 's!@BUILDSTAMP@!"2016-08-31 16:47:11"!' \
  -e 's!@SYSTEM@!Linux!' /<>/genometools-1.5.9+ds/debian/tmp/usr/bin/genometools-config
chmod 755 
/<>/genometools-1.5.9+ds/debian/tmp/usr/bin/genometools-config
bin/gt -createman /tmp/gtmanpages
warning: skipping tool 'mgth' in iterator (not a GtTool object)
warning: skipping tool 'mkfmindex' in iterator (not a GtTool object)
warning: skipping tool 'suffixerator' in iterator (not a GtTool object)
warning: skipping tool 'chkintegrity' in iterator (not a GtTool object)
warning: skipping tool 'chksearch' in iterator (not a GtTool object)
warning: skipping tool 'mkctxmap' in iterator (not a GtTool object)
warning: skipping tool 'mkindex' in iterator (not a GtTool object)
warning: skipping tool 'trsuftab' in iterator (not a GtTool object)
test -d /<>/genometools-1.5.9+ds/doc/manpages || mkdir -p 
/<>/genometools-1.5.9+ds/doc/manpages
rm -f /<>/genometools-1.5.9+ds/doc/manpages/*
scripts/create_manpages /tmp/gtmanpages 
/<>/genometools-1.5.9+ds/doc/manpages
.a2x: WARNING: --destination-dir option is only applicable to HTML based outputs
a2x: ERROR: "xsltproc"  --stringparam callout.graphics 0 --stringparam 
navig.graphics 0 --stringparam admon.textlabel 1 --stringparam admon.graphics 0 
 "/etc/asciidoc/docbook-xsl/manpage.xsl" 
"/<>/genometools-1.5.9+ds/doc/manpages/gt.xml" returned