Source: mercurial
Version: 6.2.3-1
Severity: important
Tags: ftbfs patch
Justification: fails to build from source (but built successfully in the past)
User: debian-ri...@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: i...@hack3r.moe, debian-ri...@lists.debian.org

Dear maintainer(s),

Some tests time out on riscv64 as seen in buildd log:

```
Failed test-copies-chain-merge.t#pull: timed out
Failed test-copies-chain-merge.t#pull-upgrade: timed out
Failed test-copies-chain-merge.t#push: timed out
Failed test-copies-chain-merge.t#push-upgrade: timed out
Failed test-copies-chain-merge.t#sidedata: timed out
Failed test-copies-chain-merge.t#upgraded: timed out
Failed test-copies-chain-merge.t#upgraded-parallel: timed out
# Ran 892 tests, 80 skipped, 7 failed.
python hash seed: 74757585
# Timout reached for process 2161206 
# Cleaning up HGTMP /tmp/hgtests.3yx9dxu8 
make[2]: *** [Makefile:140: tests] Error 1
```

Full log: 
https://buildd.debian.org/status/fetch.php?pkg=mercurial&arch=riscv64&ver=6.2.3-1&stamp=1668895854&raw=0

These timeouts has existed for a long time (about a year), so maybe disable
them is a better idea for more consistent builds on riscv64. Alternatively, we
can increase test timeout further and hopefully let them finish in time.

I've included a patch to disable those tests in debian/rules. Please let me
know if more help is needed.

Cheers,
Eric
diff --git a/debian/mercurial.riscv64.test_blacklist 
b/debian/mercurial.riscv64.test_blacklist
new file mode 100644
index 00000000..76c6c0c6
--- /dev/null
+++ b/debian/mercurial.riscv64.test_blacklist
@@ -0,0 +1,38 @@
+# test-clonebundles.t fails in the reproducible-builds setup due to no
+#  name resolution:
+# --- /build/mercurial-3.7.2/tests/test-clonebundles.t
+# +++ /build/mercurial-3.7.2/tests/test-clonebundles.t.err
+# @@ -52,7 +52,7 @@
+#    $ echo 'http://does.not.exist/bundle.hg' > 
server/.hg/clonebundles.manifest
+#    $ hg clone http://localhost:$HGPORT 404-url
+#    applying clone bundle from http://does.not.exist/bundle.hg
+# -  error fetching bundle: (.* not known|getaddrinfo failed) (re)
+# +  error fetching bundle: Temporary failure in name resolution
+#    abort: error applying bundle
+#    (if this error persists, consider contacting the server operator or 
disable clone bundles via "--config ui.clonebundles=false")
+#    [255]
+#
+# ERROR: test-clonebundles.t output changed
+test-clonebundles.t
+
+# upstream don't run this test and it only fails when pyflakes is installed
+test-check-pyflakes.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=6294
+test-debugcommands.t
+
+# These tests are flaky, still need to investigate why:
+test-commandserver.t
+test-largefiles.t
+
+# We don't ship the git extension yet
+test-git-interop.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=6643
+test-http-bad-server.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=3782
+test-convert-cvs-synthetic.t
+
+# test timeout on riscv64
+test-copies-chain-merge.t
diff --git a/debian/rules b/debian/rules
index 0715cc84..dc85e42c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -31,6 +31,13 @@ ARCH_IS_MIPS := $(if $(subst mips,,$(DEB_HOST_ARCH)),,T)
 ARCH_IS_KFREEBSD-i386 := $(if $(subst kfreebsd-i386,,$(DEB_HOST_ARCH)),,T)
 ARCH_IS_ARMEL := $(if $(subst armel,,$(DEB_HOST_ARCH)),,T)
 ARCH_IS_SPARC := $(if $(subst sparc,,$(DEB_HOST_ARCH)),,T)
+ARCH_IS_RISCV64 := $(if $(subst riscv64,,$(DEB_HOST_ARCH)),,T)
+
+ifneq ($(ARCH_IS_RISCV64),)
+       TEST_BLACKLIST_FILENAME := mercurial.riscv64.test_blacklist
+else
+       TEST_BLACKLIST_FILENAME := mercurial.test_blacklist
+endif
 
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
@@ -45,10 +52,10 @@ ifneq ($(or $(ARCH_IS_MIPS), $(ARCH_IS_KFREEBSD-i386), 
$(ARCH_IS_ARMEL), $(ARCH_
                sed -i.deb-backup -e 's/sleep 1/sleep 2/' 
$(CURDIR)/tests/test-pull-pull-corruption.t
 endif
 
-       http_proxy='' dh_auto_test -- PYTHON=python3 TESTFLAGS="--verbose 
--timeout 1440 $(PARALLEL_TEST_JOBS) --blacklist 
$(CURDIR)/debian/mercurial.test_blacklist"
+       http_proxy='' dh_auto_test -- PYTHON=python3 TESTFLAGS="--verbose 
--timeout 1440 $(PARALLEL_TEST_JOBS) --blacklist 
$(CURDIR)/debian/$(TEST_BLACKLIST_FILENAME)"
        file-rename 's/\.deb-backup$$//' $(CURDIR)/tests/*
        # run blacklisted tests but ignore their results
-       -cd tests && python3 run-tests.py --verbose `grep ^test 
../debian/mercurial.test_blacklist`
+       -cd tests && python3 run-tests.py --verbose `grep ^test 
../debian/$(TEST_BLACKLIST_FILENAME)`
 endif
 
 override_dh_auto_install: $(PYVERS:%=install-python%)

Reply via email to