==> Building on ninetales ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 900 100% 0.00kB/s 0:00:00 900 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=10/12) .nvchecker.toml 54 100% 52.73kB/s 0:00:00 54 100% 52.73kB/s 0:00:00 (xfr#2, to-chk=9/12) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=8/12) PKGBUILD 1,288 100% 1.23MB/s 0:00:00 1,288 100% 1.23MB/s 0:00:00 (xfr#4, to-chk=7/12) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=6/12) python-dnspython-1:2.8.0-3.log 701 100% 684.57kB/s 0:00:00 701 100% 684.57kB/s 0:00:00 (xfr#6, to-chk=5/12) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE keys/ keys/pgp/ keys/pgp/A580DEE052FEC78D8ACF383DF24B3AFC8CA2F5C7.asc 700 43% 683.59kB/s 0:00:00 1,627 100% 1.55MB/s 0:00:00 (xfr#7, to-chk=0/12) sent 2,697 bytes received 219 bytes 1,166.40 bytes/sec total size is 5,096 speedup is 1.75 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-dnspython  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-dnspython for [extra] (riscv64) ]3008;start=0a5dd20a1d0d4b518f435fcb99bbd6f5;user=root;hostname=ninetales.felixc.at;machineid=a0e69ac38f6542109165b134ff0addd5;bootid=dd65ae221dde4ef88edf0144d6bad934;pid=1440470;pidfdid=22408991;comm=systemd-nspawn;container=arch-nspawn-1440470;type=container\]11;?\]2;🔵 Container arch-nspawn-1440470 on ninetales.felixc.at\:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [!p]104[?7h]3008;end=0a5dd20a1d0d4b518f435fcb99bbd6f5\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: python-dnspython 1:2.8.0-3 (Sat Jan 31 05:53:09 2026) ==> Retrieving sources...  -> Downloading dnspython-2.8.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 400.9k 0 400.9k 0 0 267.9k 0 00:01 0 100 400.9k 0 400.9k 0 0 267.9k 0 00:01 0 100 400.9k 0 400.9k 0 0 267.8k 0 00:01 0 ==> Validating source files with sha256sums... dnspython-2.8.0.tar.gz ... Passed ]3008;start=ec1e07ace1bd425b8e8cd97311e5d630;user=root;hostname=ninetales.felixc.at;machineid=a0e69ac38f6542109165b134ff0addd5;bootid=dd65ae221dde4ef88edf0144d6bad934;pid=1441933;pidfdid=22410454;comm=systemd-nspawn;container=arch-nspawn-1441933;type=container\]11;?\]2;🔵 Container arch-nspawn-1441933 on ninetales.felixc.at\==> Making package: python-dnspython 1:2.8.0-3 (Sat Jan 31 05:53:58 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (2) New Version Net Change core/mpdecimal 4.0.1-1 0.31 MiB core/python 3.14.2-2 132.78 MiB Total Installed Size: 133.09 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (23) New Version Net Change Download Size extra/python-attrs 25.4.0-3 0.63 MiB extra/python-cffi 2.0.0-2 1.39 MiB extra/python-editables 0.5-7.1 0.03 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB extra/python-outcome 1.3.0.post0-7 0.05 MiB 0.02 MiB extra/python-packaging 26.0-1 0.89 MiB extra/python-pathspec 0.12.1-4 0.26 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pycparser 2.23-2 2.97 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-sniffio 1.3.1-5 0.04 MiB 0.01 MiB extra/python-sortedcontainers 2.4.0-8 0.38 MiB extra/python-trove-classifiers 2026.1.14.14-1.1 0.16 MiB extra/python-typing_extensions 4.15.0-3 0.52 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-cryptography 46.0.3-2 5.63 MiB extra/python-hatchling 1.28.0-3 1.06 MiB extra/python-idna 3.11-2 1.18 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-trio 0.32.0-2 6.90 MiB 1.11 MiB extra/python-wheel 0.45.1-4 0.30 MiB Total Download Size: 1.14 MiB Total Installed Size: 43.21 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-trio-0.32.0-2-any downloading... python-outcome-1.3.0.post0-7-any downloading... python-sniffio-1.3.1-5-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-editables... installing python-pathspec... installing python-pluggy... installing python-trove-classifiers... installing python-hatchling... installing python-installer... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext installing python-cryptography... installing python-idna... installing python-iniconfig... installing python-pygments... installing python-pytest... installing python-attrs... installing python-typing_extensions... installing python-outcome... installing python-sniffio... installing python-sortedcontainers... installing python-trio... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Retrieving sources... -> Found dnspython-2.8.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting dnspython-2.8.0.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built dnspython-2.8.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/python-dnspython/src/dnspython-2.8.0 configfile: pyproject.toml collected 1416 items tests/test_address.py .... [ 0%] tests/test_async.py ........F.sss..FFF....F...Fs.............F.sss..FFF. [ 3%] .......Fs..................... [ 6%] tests/test_btree.py ..................... [ 7%] tests/test_btreezone.py ......... [ 8%] tests/test_bugs.py ....... [ 8%] tests/test_constants.py ..... [ 9%] tests/test_ddr.py .. [ 9%] tests/test_dnssec.py ................................................... [ 12%] ................. [ 13%] tests/test_dnssecalgs.py ......... [ 14%] tests/test_doh.py sssssssss [ 15%] tests/test_doq.py sss [ 15%] tests/test_edns.py .................. [ 16%] tests/test_entropy.py ..... [ 17%] tests/test_exceptions.py ..... [ 17%] tests/test_features.py .... [ 17%] tests/test_flags.py ............ [ 18%] tests/test_generate.py ................. [ 19%] tests/test_grange.py .......... [ 20%] tests/test_immutable.py ...... [ 20%] tests/test_message.py .................................................. [ 24%] ............................... [ 26%] tests/test_name.py ..................................................... [ 30%] ........................................................................ [ 35%] .................................................. [ 38%] tests/test_namedict.py ...................... [ 40%] tests/test_nsec3.py .. [ 40%] tests/test_nsec3_hash.py ... [ 40%] tests/test_ntoaaton.py ................................................ [ 44%] tests/test_processing_order.py .......... [ 44%] tests/test_query.py ..FFFF............................................. [ 48%] tests/test_rdata.py .................................................... [ 52%] .............................................. [ 55%] tests/test_rdataset.py .................. [ 56%] tests/test_rdtypeandclass.py .......................... [ 58%] tests/test_rdtypeanydnskey.py .. [ 58%] tests/test_rdtypeanyeui.py ........................ [ 60%] tests/test_rdtypeanyloc.py .... [ 60%] tests/test_rdtypeanytkey.py .... [ 61%] tests/test_renderer.py ..... [ 61%] tests/test_resolution.py ............................... [ 63%] tests/test_resolver.py ...........................F..s.......F.......... [ 67%] ............. [ 67%] tests/test_resolver_override.py F............. [ 68%] tests/test_rrset.py ...................... [ 70%] tests/test_rrset_reader.py ............ [ 71%] tests/test_serial.py ........... [ 72%] tests/test_set.py ................................................... [ 75%] tests/test_svcb.py ................ [ 76%] tests/test_tokenizer.py ................................................ [ 80%] [ 80%] tests/test_transaction.py .............................................. [ 83%] .. [ 83%] tests/test_tsig.py ........................ [ 85%] tests/test_tsigkeyring.py ....... [ 85%] tests/test_ttl.py ......... [ 86%] tests/test_update.py ....................... [ 88%] tests/test_wire.py ....... [ 88%] tests/test_xfr.py ................................. [ 90%] tests/test_zone.py ..................................................... [ 94%] ................................................................. [ 99%] tests/test_zonedigest.py ........... [100%] =================================== FAILURES =================================== _____________________ AsyncTests.testCanonicalNameDangling _____________________ self = @unittest.skipIf( _systemd_resolved_present or _is_docker, "systemd-resolved or docker in use" ) @tests.util.retry_on_timeout def testCanonicalNameDangling(self): name = dns.name.from_text("dangling-cname.dnspython.org") cname = dns.name.from_text("dangling-target.dnspython.org") async def run(): return await dns.asyncresolver.canonical_name(name) > self.assertEqual(self.async_run(run), cname) E AssertionError: != tests/test_async.py:286: AssertionError ___________________________ AsyncTests.testQueryTLS ____________________________ args = (,), kwargs = {} bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ______________________ AsyncTests.testQueryTLSWithContext ______________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ______________________ AsyncTests.testQueryTLSWithSocket _______________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ____________________________ AsyncTests.testResolve ____________________________ self = @tests.util.retry_on_timeout def testResolve(self): async def run(): answer = await dns.asyncresolver.resolve("dns.google.", "A") return set([rdata.address for rdata in answer]) seen = self.async_run(run) > self.assertTrue("8.8.8.8" in seen) E AssertionError: False is not true tests/test_async.py:197: AssertionError __________________________ AsyncTests.testResolveName __________________________ self = @tests.util.retry_on_timeout def testResolveName(self): async def run1(): return await dns.asyncresolver.resolve_name("dns.google.") answers = self.async_run(run1) seen = set(answers.addresses()) > self.assertEqual(len(seen), 4) E AssertionError: 3 != 4 tests/test_async.py:216: AssertionError ___________________ TrioAsyncTests.testCanonicalNameDangling ___________________ self = @unittest.skipIf( _systemd_resolved_present or _is_docker, "systemd-resolved or docker in use" ) @tests.util.retry_on_timeout def testCanonicalNameDangling(self): name = dns.name.from_text("dangling-cname.dnspython.org") cname = dns.name.from_text("dangling-target.dnspython.org") async def run(): return await dns.asyncresolver.canonical_name(name) > self.assertEqual(self.async_run(run), cname) E AssertionError: != tests/test_async.py:286: AssertionError _________________________ TrioAsyncTests.testQueryTLS __________________________ args = (,), kwargs = {} bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ____________________ TrioAsyncTests.testQueryTLSWithContext ____________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ____________________ TrioAsyncTests.testQueryTLSWithSocket _____________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ________________________ TrioAsyncTests.testResolveName ________________________ self = @tests.util.retry_on_timeout def testResolveName(self): async def run1(): return await dns.asyncresolver.resolve_name("dns.google.") answers = self.async_run(run1) seen = set(answers.addresses()) > self.assertEqual(len(seen), 4) E AssertionError: 3 != 4 tests/test_async.py:216: AssertionError ___________________________ QueryTests.testQueryTLS ____________________________ args = (,), kwargs = {} bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ______________________ QueryTests.testQueryTLSWithContext ______________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout ______________________ QueryTests.testQueryTLSWithSocket _______________________ self = @unittest.skipUnless(have_ssl, "No SSL support") @tests.util.retry_on_timeout def testQueryTLSWithSocket(self): for address in query_addresses: with socket.socket( dns.inet.af_for_address(address), socket.SOCK_STREAM ) as base_s: ll = dns.inet.low_level_address_tuple((address, 853)) base_s.settimeout(2) > base_s.connect(ll) E TimeoutError: timed out tests/test_query.py:177: TimeoutError ______________________ QueryTests.testQueryTLSwithPadding ______________________ args = (,) kwargs = {}, bad = True, i = 2 @functools.wraps(f) def wrapper(*args, **kwargs): bad = True for i in range(3): try: f(*args, **kwargs) bad = False break except dns.exception.Timeout: pass if bad: > raise dns.exception.Timeout E dns.exception.Timeout: The DNS operation timed out. tests/util.py:150: Timeout _________________ LiveResolverTests.testCanonicalNameDangling __________________ self = @unittest.skipIf( _systemd_resolved_present or _is_docker, "systemd-resolved or docker in use" ) @tests.util.retry_on_timeout def testCanonicalNameDangling(self): name = dns.name.from_text("dangling-cname.dnspython.org") cname = dns.name.from_text("dangling-target.dnspython.org") > self.assertEqual(dns.resolver.canonical_name(name), cname) E AssertionError: != tests/test_resolver.py:828: AssertionError ______________________ LiveResolverTests.testResolveName _______________________ self = @tests.util.retry_on_timeout def testResolveName(self): answers = dns.resolver.resolve_name("dns.google.") seen = set(answers.addresses()) > self.assertEqual(len(seen), 4) E AssertionError: 3 != 4 tests/test_resolver.py:685: AssertionError ____________ OverrideSystemResolverTestCase.test_basic_getaddrinfo _____________ self = @unittest.skipIf( sys.platform == "win32", "avoid windows original getaddrinfo issues" ) def test_basic_getaddrinfo(self): self.assertTrue( self.equivalent("dns.google", 53, socket.AF_INET, socket.SOCK_DGRAM) ) > self.assertTrue( self.equivalent("dns.google", 53, socket.AF_INET6, socket.SOCK_DGRAM) ) E AssertionError: False is not true tests/test_resolver_override.py:104: AssertionError =========================== short test summary info ============================ FAILED tests/test_async.py::AsyncTests::testCanonicalNameDangling - Assertion... FAILED tests/test_async.py::AsyncTests::testQueryTLS - dns.exception.Timeout:... FAILED tests/test_async.py::AsyncTests::testQueryTLSWithContext - dns.excepti... FAILED tests/test_async.py::AsyncTests::testQueryTLSWithSocket - dns.exceptio... FAILED tests/test_async.py::AsyncTests::testResolve - AssertionError: False i... FAILED tests/test_async.py::AsyncTests::testResolveName - AssertionError: 3 != 4 FAILED tests/test_async.py::TrioAsyncTests::testCanonicalNameDangling - Asser... FAILED tests/test_async.py::TrioAsyncTests::testQueryTLS - dns.exception.Time... FAILED tests/test_async.py::TrioAsyncTests::testQueryTLSWithContext - dns.exc... FAILED tests/test_async.py::TrioAsyncTests::testQueryTLSWithSocket - dns.exce... FAILED tests/test_async.py::TrioAsyncTests::testResolveName - AssertionError:... FAILED tests/test_query.py::QueryTests::testQueryTLS - dns.exception.Timeout:... FAILED tests/test_query.py::QueryTests::testQueryTLSWithContext - dns.excepti... FAILED tests/test_query.py::QueryTests::testQueryTLSWithSocket - TimeoutError... FAILED tests/test_query.py::QueryTests::testQueryTLSwithPadding - dns.excepti... FAILED tests/test_resolver.py::LiveResolverTests::testCanonicalNameDangling FAILED tests/test_resolver.py::LiveResolverTests::testResolveName - Assertion... FAILED tests/test_resolver_override.py::OverrideSystemResolverTestCase::test_basic_getaddrinfo =========== 18 failed, 1377 passed, 21 skipped in 389.84s (0:06:29) ============ ==> ERROR: A failure occurred in check(). Aborting... [!p]104[?7h]3008;end=ec1e07ace1bd425b8e8cd97311e5d630\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-dnspython-1:2.8.0-3-riscv64-build.log python-dnspython-1:2.8.0-3-riscv64-check.log sent 62 bytes received 2,731 bytes 1,862.00 bytes/sec total size is 18,165 speedup is 6.50