Bug#850457: pspp: FTBFS randomly (testsuite: 247 failed)

2017-01-08 Thread Friedrich Beckmann
Control: tags -1 unreproducable

Hi Santiago,

thanks for your bug report. I tried to reproduce the build problem
that you describe but I was not able to do so. Looking at your build logs
I can see that it is always test 247 that fails. Test 247 starts a postgresql
database server and then tries to read data from this database.

Looking at your log file the critical section is here:

= Snippet from Santiagos failure log 
##  ##
## Summary of the failures. ##
##  ##
Failed tests:
GNU PSPP 0.10.2 test suite test groups:

 NUM: FILE-NAME:LINE TEST-GROUP-NAME
  KEYWORDS

 247: get-data-psql.at:124 GET DATA /TYPE=PSQL

## -- ##
## Detailed failed tests. ##
## -- ##

# -*- compilation -*-
247. get-data-psql.at:124: testing GET DATA /TYPE=PSQL ...
./get-data-psql.at:125: initdb -A trust
--- /dev/null   2017-01-05 19:44:44.56400 +
+++ /<>/tests/testsuite.dir/at-groups/247/stderr   2017-01-06 
02:09:40.476955912 +
@@ -0,0 +1 @@
+locale: Cannot set LC_MESSAGES to default locale: No such file or directory
stdout:
The files belonging to this database system will be owned by user "buildd".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /<>/tests/testsuite.dir/0247/cluster ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

pg_ctl -D /<>/tests/testsuite.dir/0247/cluster -l logfile start

247. get-data-psql.at:124: 247. GET DATA /TYPE=PSQL (get-data-psql.at:124): 
FAILED (get-data-psql.at:125)

== End of snippet =

My clue is that the problem is related to the line

+locale: Cannot set LC_MESSAGES to default locale: No such file or directory

so it would be a hint that there is some problem on your build
system with the locale mechanism. 

If I build the pspp package from source as you did with

dpkg-buildpackage -B

and then run test 247 with verbose output it looks like this:

 Snippet from Friedrich ===
fritz@debian:~/pspp/debian/pspp-0.10.2$ XTERM_LOCALE='' /bin/bash 
'./tests/testsuite' 247 -v -C tests 
AUTOTEST_PATH=tests/data:tests/language/lexer:tests/libpspp:tests/output:src/ui/terminal:utilities
 RUNNER='' -j1
## --- ##
## GNU PSPP 0.10.2 test suite. ##
## --- ##
247. get-data-psql.at:124: testing GET DATA /TYPE=PSQL ...
./get-data-psql.at:125: initdb -A trust
stdout:
The files belonging to this database system will be owned by user "fritz".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory 
/home/fritz/pspp/debian/pspp-0.10.2/tests/testsuite.dir/0247/cluster ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

pg_ctl -D 
/home/fritz/pspp/debian/pspp-0.10.2/tests/testsuite.dir/0247/cluster -l logfile 
start

./get-data-psql.at:125: pg_ctl start -w -o "-k $socket_dir -h ''"
stdout:
waiting for server to startLOG:  database system was shut down at 
2017-01-08 10:50:11 CET
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
 done
server started
./get-data-psql.at:125: createdb -h "$socket_dir" -p $PG_PORT $PG_DBASE
stderr:
stdout:
./get-data-psql.at:125: psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < 
populate.sql
stdout:
CREATE TABLE
CREATE TABLE
INSERT 0 1000
CREATE TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
./get-data-psql.at:128: cat > ordinary-query.sps < empty-result.sps < large-result.sps < 1).
LIST.

TEMPORARY.
N OF CASES 6.
LIST.

SORT CASES BY x (D).

TEMPORARY.
N OF CASES 6.
LIST.
EOF

./get-data-psql.at:217: pspp -o pspp.csv large-result.sps
./get-data-psql.at:218: cat pspp.csv
./get-data-psql.at:250: psql -h "$socket_dir" -p $PG_PORT $PG_DBASE < 
all-null-string.sql
stdout:
CREATE TABLE
INSERT 0 1
INSERT 0 1
./get-data-psql.at:253: cat > get-data.sps < Am 06.01.2017 um 

Bug#850457: pspp: FTBFS randomly (testsuite: 247 failed)

2017-01-06 Thread Santiago Vila
Package: src:pspp
Version: 0.10.2-1
Severity: important

Dear maintainer:

I tried to build this package in stretch with "dpkg-buildpackage -A"
but it failed:


[...]
 debian/rules build-arch
dh build-arch --parallel --with autoreconf
   dh_testdir -a -O--parallel
   dh_update_autotools_config -a -O--parallel
install -d debian/.debhelper/bucket/files
cp -an --reflink=auto build-aux/config.guess 
debian/.debhelper/bucket/files/47da33933b3825049bbc04871747a9598ce90fd45a438b6a8a58b74bf6d73a4d.tmp
mv -f 
debian/.debhelper/bucket/files/47da33933b3825049bbc04871747a9598ce90fd45a438b6a8a58b74bf6d73a4d.tmp
 
debian/.debhelper/bucket/files/47da33933b3825049bbc04871747a9598ce90fd45a438b6a8a58b74bf6d73a4d
cp -f /usr/share/misc/config.guess ./build-aux/config.guess
cp -an --reflink=auto build-aux/config.sub 
debian/.debhelper/bucket/files/f4cf53ff68e5b9c3437a1e7ad3086c4c669136caebd721ffc58ef21944bd395a.tmp
mv -f 
debian/.debhelper/bucket/files/f4cf53ff68e5b9c3437a1e7ad3086c4c669136caebd721ffc58ef21944bd395a.tmp
 
debian/.debhelper/bucket/files/f4cf53ff68e5b9c3437a1e7ad3086c4c669136caebd721ffc58ef21944bd395a
cp -f /usr/share/misc/config.sub ./build-aux/config.sub
   dh_autoreconf -a -O--parallel
find ! -ipath "./debian/*" -a ! \( -path '*/.git/*' -o -path '*/.hg/*' 
-o -path '*/.bzr/*' -o -path '*/.svn/*' -o -path '*/CVS/*' \) -a  -type f -exec 
md5sum {} \; > debian/autoreconf.before
autoreconf -f -i

[... snipped ...]

| #define HAVE_RAW_DECL_WCSCMP 1
| #define HAVE_RAW_DECL_WCSNCMP 1
| #define HAVE_RAW_DECL_WCSCASECMP 1
| #define HAVE_RAW_DECL_WCSNCASECMP 1
| #define HAVE_RAW_DECL_WCSCOLL 1
| #define HAVE_RAW_DECL_WCSXFRM 1
| #define HAVE_RAW_DECL_WCSDUP 1
| #define HAVE_RAW_DECL_WCSCHR 1
| #define HAVE_RAW_DECL_WCSRCHR 1
| #define HAVE_RAW_DECL_WCSCSPN 1
| #define HAVE_RAW_DECL_WCSSPN 1
| #define HAVE_RAW_DECL_WCSPBRK 1
| #define HAVE_RAW_DECL_WCSSTR 1
| #define HAVE_RAW_DECL_WCSTOK 1
| #define HAVE_RAW_DECL_WCSWIDTH 1
| #define GNULIB_TEST_WCRTOMB 1
| #define HAVE_TOWLOWER 1
| #define HAVE_RAW_DECL_WCTYPE 1
| #define HAVE_RAW_DECL_ISWCTYPE 1
| #define HAVE_RAW_DECL_WCTRANS 1
| #define HAVE_RAW_DECL_TOWCTRANS 1
| #define HAVE_DECL_WCWIDTH 1
| #define GNULIB_TEST_WCWIDTH 1
| #define GNULIB_TEST_WRITE 1
| #define HAVE_STDINT_H 1
| #define HAVE_FORK 1
| #define HAVE_EXECL 1
| #define HAVE_ISINF 1
| #define HAVE_ISNAN 1
| #define HAVE_FINITE 1
| #define HAVE_GETPID 1
| #define HAVE_FEHOLDEXCEPT 1
| #define HAVE_POPEN 1
| #define HAVE_ROUND 1
| #define HAVE_ICONV 1
| #define ICONV_CONST 
| 
| configure: exit 0

debian/rules:35: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 1
make[1]: Leaving directory '/<>'
debian/rules:29: recipe for target 'build-arch' failed
make: *** [build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2


This is just how the build ends, not necessarily the relevant part.

I've put several build logs here:

https://people.debian.org/~sanvila/build-logs/pspp/

If this is really a bug in one of the build-depends, please use reassign and 
affects,
so that this is still visible in the page for this package.

The bug should be reproducible with sbuild on a single CPU virtual machine,
provided you try enough times (as the failure happens randomly).

Thanks.