Page MenuHomePhabricator

labs/toollabs.git Debian package doesn’t build on usr-merge systems (test failure)
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • Use a “merged /usr” system (on Debian, install the usrmerge package)
  • Clone labs/toollabs.git
  • Try to build the Debian package with fakeroot debian/rules binary (I don’t know if that’s the correct way to build it but it works for me)

What happens?:
The package build aborts because the test suite fails:

## ------------------------- ##
## toollabs 1.42 test suite. ##
## ------------------------- ##
  1: Normal call                                     FAILED (testsuite.at:64)
  2: Quiet call                                      FAILED (testsuite.at:68)
  3: -o points to a non-existing file                FAILED (testsuite.at:74)
  4: -o points to a existing file                    FAILED (testsuite.at:84)
  5: -o points to a non-existing file and -umask is used FAILED (testsuite.at:92)
  6: -o points to a existing file and -umask is used FAILED (testsuite.at:102)
  7: -o points to a existing directory               FAILED (testsuite.at:111)
  8: .jsubrc is honoured                             FAILED (testsuite.at:120)
  9: .jsubrc options are overwritten by command line arguments FAILED (testsuite.at:133)
 10: -l is exploded                                  FAILED (testsuite.at:144)
 11: -l h_vmem is processed                          FAILED (testsuite.at:148)
 12: -l largest wins (virtual_free)                  FAILED (testsuite.at:152)
 13: -l largest wins (h_vmem)                        FAILED (testsuite.at:156)
 14: -l largest wins (default)                       FAILED (testsuite.at:160)
testsuite.log
## ---------------------- ##
## Detailed failed tests. ##
## ---------------------- ##

#                             -*- compilation -*-
1. testsuite.at:64: testing Normal call ...
./testsuite.at:64: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub true
./testsuite.at:64: cat dummy.args
--- -	2021-07-22 18:27:48.197095585 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/1/stdout	2021-07-22 18:27:48.190168114 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
1. testsuite.at:64: 1. Normal call (testsuite.at:64): FAILED (testsuite.at:64)

#                             -*- compilation -*-
2. testsuite.at:68: testing Quiet call ...
./testsuite.at:68: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -quiet true
./testsuite.at:68: cat dummy.args
--- -	2021-07-22 18:27:48.273520609 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/2/stdout	2021-07-22 18:27:48.266168114 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
2. testsuite.at:68: 2. Quiet call (testsuite.at:68): FAILED (testsuite.at:68)

#                             -*- compilation -*-
3. testsuite.at:73: testing -o points to a non-existing file ...
./testsuite.at:74: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-not-exist.log -quiet true
./testsuite.at:74: cat dummy.args
--- -	2021-07-22 18:27:48.327074662 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/3/stdout	2021-07-22 18:27:48.322168115 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-not-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-not-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
3. testsuite.at:73: 3. -o points to a non-existing file (testsuite.at:73): FAILED (testsuite.at:74)

#                             -*- compilation -*-
4. testsuite.at:81: testing -o points to a existing file ...
./testsuite.at:82: touch does-exist.log
./testsuite.at:83: chmod 664 does-exist.log
./testsuite.at:84: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-exist.log -quiet true
./testsuite.at:84: cat dummy.args
--- -	2021-07-22 18:27:48.392947277 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/4/stdout	2021-07-22 18:27:48.386168116 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
4. testsuite.at:81: 4. -o points to a existing file (testsuite.at:81): FAILED (testsuite.at:84)

#                             -*- compilation -*-
5. testsuite.at:91: testing -o points to a non-existing file and -umask is used ...
./testsuite.at:92: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-not-exist.log -quiet -umask 000 true
./testsuite.at:92: cat dummy.args
--- -	2021-07-22 18:27:48.451437006 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/5/stdout	2021-07-22 18:27:48.446168116 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-not-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-not-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
5. testsuite.at:91: 5. -o points to a non-existing file and -umask is used (testsuite.at:91): FAILED (testsuite.at:92)

#                             -*- compilation -*-
6. testsuite.at:99: testing -o points to a existing file and -umask is used ...
./testsuite.at:100: touch does-exist.log
./testsuite.at:101: chmod 664 does-exist.log
./testsuite.at:102: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-exist.log -quiet -umask 000 true
./testsuite.at:102: cat dummy.args
--- -	2021-07-22 18:27:48.516429380 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/6/stdout	2021-07-22 18:27:48.510168117 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
6. testsuite.at:99: 6. -o points to a existing file and -umask is used (testsuite.at:99): FAILED (testsuite.at:102)

#                             -*- compilation -*-
7. testsuite.at:109: testing -o points to a existing directory ...
./testsuite.at:110: mkdir does-exist
./testsuite.at:111: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-exist -quiet true
./testsuite.at:111: cat dummy.args
--- -	2021-07-22 18:27:48.572650114 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/7/stdout	2021-07-22 18:27:48.566168118 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
7. testsuite.at:109: 7. -o points to a existing directory (testsuite.at:109): FAILED (testsuite.at:111)

#                             -*- compilation -*-
8. testsuite.at:117: testing .jsubrc is honoured ...
./testsuite.at:118: touch does-exist.log
./testsuite.at:119: chmod 664 does-exist.log
./testsuite.at:120: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub true
./testsuite.at:120: cat dummy.args
--- -	2021-07-22 18:27:48.653948167 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/8/stdout	2021-07-22 18:27:48.646168118 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
8. testsuite.at:117: 8. .jsubrc is honoured (testsuite.at:117): FAILED (testsuite.at:120)

#                             -*- compilation -*-
9. testsuite.at:130: testing .jsubrc options are overwritten by command line arguments ...
./testsuite.at:131: touch does-exist.log
./testsuite.at:132: chmod 664 does-exist.log
./testsuite.at:133: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -o does-exist.log true
./testsuite.at:133: cat dummy.args
--- -	2021-07-22 18:27:48.745743276 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/9/stdout	2021-07-22 18:27:48.738168119 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o does-exist.log -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
9. testsuite.at:130: 9. .jsubrc options are overwritten by command line arguments (testsuite.at:130): FAILED (testsuite.at:133)

#                             -*- compilation -*-
10. testsuite.at:144: testing -l is exploded ...
./testsuite.at:144: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -l foo=1,bar=2 true
./testsuite.at:144: cat dummy.args
--- -	2021-07-22 18:27:48.829395413 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/10/stdout	2021-07-22 18:27:48.822168120 +0000
@@ -1,2 +1,2 @@
--l foo=1 -l bar=2 -j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-l foo=1 -l bar=2 -j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
10. testsuite.at:144: 10. -l is exploded (testsuite.at:144): FAILED (testsuite.at:144)

#                             -*- compilation -*-
11. testsuite.at:148: testing -l h_vmem is processed ...
./testsuite.at:148: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -l foo=1,h_vmem=1G,bar=2 true
./testsuite.at:148: cat dummy.args
--- -	2021-07-22 18:27:48.878606351 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/11/stdout	2021-07-22 18:27:48.874168121 +0000
@@ -1,2 +1,2 @@
--l foo=1 -l bar=2 -j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1048576k -l release=stretch -q task -b yes /bin/true
+-l foo=1 -l bar=2 -j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1048576k -l release=stretch -q task -b yes /usr/bin/true
 
11. testsuite.at:148: 11. -l h_vmem is processed (testsuite.at:148): FAILED (testsuite.at:148)

#                             -*- compilation -*-
12. testsuite.at:152: testing -l largest wins (virtual_free) ...
./testsuite.at:152: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -l h_vmem=1k,virtual_free=1G true
./testsuite.at:152: cat dummy.args
--- -	2021-07-22 18:27:48.930975372 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/12/stdout	2021-07-22 18:27:48.926168121 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1153433k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1153433k -l release=stretch -q task -b yes /usr/bin/true
 
12. testsuite.at:152: 12. -l largest wins (virtual_free) (testsuite.at:152): FAILED (testsuite.at:152)

#                             -*- compilation -*-
13. testsuite.at:156: testing -l largest wins (h_vmem) ...
./testsuite.at:156: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -l h_vmem=1g,virtual_free=1K true
./testsuite.at:156: cat dummy.args
--- -	2021-07-22 18:27:48.990042684 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/13/stdout	2021-07-22 18:27:48.982168122 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1048576k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=1048576k -l release=stretch -q task -b yes /usr/bin/true
 
13. testsuite.at:156: 13. -l largest wins (h_vmem) (testsuite.at:156): FAILED (testsuite.at:156)

#                             -*- compilation -*-
14. testsuite.at:160: testing -l largest wins (default) ...
./testsuite.at:160: JOBUTILS_JSUBRC=jsubrc JOBUTILS_QSUB=dummy.sh jsub -l h_vmem=1m,virtual_free=1M true
./testsuite.at:160: cat dummy.args
--- -	2021-07-22 18:27:49.039884185 +0000
+++ /tmp/toollabs-other/toollabs/tests/testsuite.dir/at-groups/14/stdout	2021-07-22 18:27:49.034168123 +0000
@@ -1,2 +1,2 @@
--j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /bin/true
+-j no -e /tmp/toollabs-other/toollabs/fake-home/true.err -o /tmp/toollabs-other/toollabs/fake-home/true.out -M lucas@tools.wmflabs.org -N true -hard -l h_vmem=524288k -l release=stretch -q task -b yes /usr/bin/true
 
14. testsuite.at:160: 14. -l largest wins (default) (testsuite.at:160): FAILED (testsuite.at:160)

What should have happened instead?:
The tests should pass and the package should build. (If I replace all the /bin/true in the file with /usr/bin/true, it builds successfully.)

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:
Commit be117c5449.

Event Timeline

These tests date back to mid-2013; they start with a comment that’s kinda funny:

# Test jsub.

# We use mainly true for tests, as jsub determines the path to the
# script internally and we can predict with a great certainty that
# true will be in /bin/true.

Frankly, I don’t think the certainty was all that great even in 2013 – Fedora 17 shipped with merged /usr in early 2012 already. But anyways, today merged usr is even the default in fresh Debian 10 installs, so I would appreciate it if the tests worked on such systems :)

Change 706674 had a related patch set uploaded (by Lucas Werkmeister; author: Lucas Werkmeister):

[labs/toollabs@master] tests/: use env instead of true as binary

https://gerrit.wikimedia.org/r/706674

Change 706674 merged by jenkins-bot:

[labs/toollabs@master] tests/: use env instead of true as binary

https://gerrit.wikimedia.org/r/706674