Source: python-matrix-nio Version: 0.15.2-1 Severity: serious Justification: FTBFS on amd64 Tags: bullseye sid ftbfs Usertags: ftbfs-20210120 ftbfs-bullseye
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > dpkg-buildpackage > ----------------- > > Command: dpkg-buildpackage -us -uc -sa -rfakeroot > dpkg-buildpackage: info: source package python-matrix-nio > dpkg-buildpackage: info: source version 0.15.2-1 > dpkg-buildpackage: info: source distribution unstable > dpkg-buildpackage: info: source changed by Jonas Smedegaard <d...@jones.dk> > dpkg-source --before-build . > dpkg-buildpackage: info: host architecture amd64 > debian/rules clean > dh clean --buildsystem=pybuild > dh_auto_clean -O--buildsystem=pybuild > I: pybuild base:232: python3.9 setup.py clean > running clean > removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build' (and everything under > it) > 'build/bdist.linux-x86_64' does not exist -- can't clean it > 'build/scripts-3.9' does not exist -- can't clean it > dh_autoreconf_clean -O--buildsystem=pybuild > dh_clean -O--buildsystem=pybuild > dpkg-source -b . > dpkg-source: info: using source format '3.0 (quilt)' > dpkg-source: info: building python-matrix-nio using existing > ./python-matrix-nio_0.15.2.orig.tar.gz > dpkg-source: info: using patch list from debian/patches/series > dpkg-source: info: building python-matrix-nio in > python-matrix-nio_0.15.2-1.debian.tar.xz > dpkg-source: info: building python-matrix-nio in > python-matrix-nio_0.15.2-1.dsc > debian/rules binary > dh binary --buildsystem=pybuild > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > I: pybuild base:232: python3.9 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > I: pybuild base:232: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/rooms.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/responses.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/api.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/_compat.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/http.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/log.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/exceptions.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/monitors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > copying nio/schemas.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/to_device.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/misc.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/account_data.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/room_events.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/invite_events.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/presence.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/common.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > copying nio/events/ephemeral.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/events > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/client > copying nio/client/http_client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/client > copying nio/client/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/client > copying nio/client/base_client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/client > copying nio/client/async_client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/client > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/key_export.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/sas.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/memorystores.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/olm_machine.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/device.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/sessions.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/log.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/attachments.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/async_attachments.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > copying nio/crypto/key_request.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/crypto > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/event_builders > copying nio/event_builders/direct_messages.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/event_builders > copying nio/event_builders/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/event_builders > copying nio/event_builders/state_events.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/event_builders > copying nio/event_builders/event_builder.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/event_builders > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > copying nio/store/models.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > copying nio/store/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > copying nio/store/database.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > copying nio/store/file_trustdb.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > copying nio/store/log.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/nio/store > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:232: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; > python3.9 -m pytest -k-test_connect_wrapper > ============================= test session starts > ============================== > platform linux -- Python 3.9.1+, pytest-6.0.2, py-1.10.0, pluggy-0.13.0 > benchmark: 3.2.2 (defaults: timer=time.perf_counter disable_gc=False > min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 > warmup=False warmup_iterations=100000) > rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg > plugins: benchmark-3.2.2, cov-2.10.1, hypothesis-5.43.3 > collected 381 items / 1 deselected / 380 selected > > tests/async_attachment_test.py ............... [ > 3%] > tests/async_client_test.py .................F........................... [ > 15%] > .......F............................... [ > 26%] > tests/attachment_test.py ....... [ > 27%] > tests/client_test.py .......................................... [ > 38%] > tests/encryption_test.py ................................. [ > 47%] > tests/event_builders_test.py ....... [ > 49%] > tests/event_test.py .......................................... [ > 60%] > tests/http2_test.py .... [ > 61%] > tests/http_test.py .. [ > 62%] > tests/key_export_test.py ........ [ > 64%] > tests/memory_store_test.py .... [ > 65%] > tests/responses_test.py .............................. [ > 73%] > tests/room_test.py ............................ [ > 80%] > tests/sas_test.py ............................... [ > 88%] > tests/sessions_test.py .... [ > 89%] > tests/store_test.py ....................................... > [100%] > > =================================== FAILURES > =================================== > _________________________ TestClass.test_sync[pyloop] > __________________________ > > self = <async_client_test.TestClass object at 0x7f1bb53bfc70> > async_client = <nio.client.async_client.AsyncClient object at 0x7f1bb555e760> > aioresponse = <aioresponses.core.aioresponses object at 0x7f1bb555e100> > > async def test_sync(self, async_client, aioresponse): > aioresponse.post( > "https://example.org/_matrix/client/r0/login", > status=200, > payload=self.login_response > ) > > url = ( > r"^https://example\.org/_matrix/client/r0/" > r"sync\?access_token=abc123" > ) > > aioresponse.get( > re.compile(fr"{url}$"), > status=200, > payload=self.sync_response > ) > > with pytest.raises(LocalProtocolError): > resp2 = await async_client.sync() > > resp = await async_client.login("wordpass") > resp2 = await async_client.sync() > assert isinstance(resp, LoginResponse) > assert isinstance(resp2, SyncResponse) > > # Test with filter ID > > aioresponse.get( > re.compile(fr"{url}&filter=test_id&since=.*"), > status=200, > payload=self.sync_response > ) > resp3 = await async_client.sync(sync_filter="test_id") > assert isinstance(resp3, SyncResponse) > > # Test with filter dict > > aioresponse.get( > re.compile(url + r"&filter=" + quote("{}") + "&since=.*"), > status=200, > payload=self.sync_response, > ) > > resp4 = await async_client.sync(sync_filter={}) > > tests/async_client_test.py:756: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > nio/client/async_client.py:994: in sync > response = await self._send( > nio/client/async_client.py:704: in _send > transport_resp = await self.send( > nio/client/async_client.py:252: in wrapper > return await func(self, *args, **kwargs) > nio/client/async_client.py:771: in send > return await self.client_session.request( > /usr/lib/python3.9/unittest/mock.py:2165: in _execute_mock_call > result = await effect(*args, **kwargs) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aioresponses.core.aioresponses object at 0x7f1bb555e100> > orig_self = <aiohttp.client.ClientSession object at 0x7f1bb57fb4c0> > method = 'GET' > url = > URL('https://example.org/_matrix/client/r0/sync?access_token=abc123&filter=%257B%257D&since=s526_47314_0_7_1_1_1_11444_1') > args = () > kwargs = {'data': None, 'headers': {'Content-Type': 'application/json'}, > 'proxy': None, 'ssl': None, ...} > url_origin = > 'https://example.org/_matrix/client/r0/sync?access_token=abc123&since=s526_47314_0_7_1_1_1_11444_1&filter=%7B%7D' > url_str = > 'https://example.org/_matrix/client/r0/sync?access_token=abc123&filter=%257B%257D&since=s526_47314_0_7_1_1_1_11444_1' > key = ('GET', > URL('https://example.org/_matrix/client/r0/sync?access_token=abc123&filter=%257B%257D&since=s526_47314_0_7_1_1_1_11444_1')) > kwargs_copy = {'data': None, 'headers': {'Content-Type': 'application/json'}, > 'proxy': None, 'ssl': None, ...} > response = None > > async def _request_mock(self, orig_self: ClientSession, > method: str, url: 'Union[URL, str]', > *args: Tuple, > **kwargs: Dict) -> 'ClientResponse': > """Return mocked response object or raise connection error.""" > if orig_self.closed: > raise RuntimeError('Session is closed') > > url_origin = url > url = normalize_url(merge_params(url, kwargs.get('params'))) > url_str = str(url) > for prefix in self._passthrough: > if url_str.startswith(prefix): > return (await self.patcher.temp_original( > orig_self, method, url_origin, *args, **kwargs > )) > > key = (method, url) > self.requests.setdefault(key, []) > try: > kwargs_copy = copy.deepcopy(kwargs) > except TypeError: > # Handle the fact that some values cannot be deep copied > kwargs_copy = kwargs > self.requests[key].append(RequestCall(args, kwargs_copy)) > > response = await self.match(method, url, **kwargs) > > if response is None: > > raise ClientConnectionError( > 'Connection refused: {} {}'.format(method, url) > ) > E aiohttp.client_exceptions.ClientConnectionError: Connection > refused: GET > https://example.org/_matrix/client/r0/sync?access_token=abc123&filter=%257B%257D&since=s526_47314_0_7_1_1_1_11444_1 > > /usr/lib/python3/dist-packages/aioresponses/core.py:393: ClientConnectionError > _____________________ TestClass.test_traceconfig_callbacks > _____________________ > > self = <async_client_test.TestClass object at 0x7f1bb53bfca0> > > async def test_traceconfig_callbacks(self): > monitor = TransferMonitor(1) > > class Context: > def __init__(self): > self.trace_request_ctx = monitor > > session = ClientSession() > context = Context() > > params = TraceRequestChunkSentParams(chunk=b"x") > E TypeError: __init__() missing 2 required positional arguments: > 'method' and 'url' > > tests/async_client_test.py:1798: TypeError > =============================== warnings summary > =============================== > /usr/lib/python3/dist-packages/_pytest/config/__init__.py:1148 > /usr/lib/python3/dist-packages/_pytest/config/__init__.py:1148: > PytestConfigWarning: Unknown config ini key: flake8-ignore > > self._warn_or_fail_if_strict("Unknown config ini key: {}\n".format(key)) > > -- Docs: https://docs.pytest.org/en/stable/warnings.html > > > Computing stats ... > Computing stats ... group 1/1 > Computing stats ... group 1/1: min > Computing stats ... group 1/1: min (1/1) > Computing stats ... group 1/1: min (1/1) > Computing stats ... group 1/1: max > Computing stats ... group 1/1: max (1/1) > Computing stats ... group 1/1: max (1/1) > Computing stats ... group 1/1: mean > Computing stats ... group 1/1: mean (1/1) > Computing stats ... group 1/1: mean (1/1) > Computing stats ... group 1/1: median > Computing stats ... group 1/1: median (1/1) > Computing stats ... group 1/1: median (1/1) > Computing stats ... group 1/1: iqr > Computing stats ... group 1/1: iqr (1/1) > Computing stats ... group 1/1: iqr (1/1) > Computing stats ... group 1/1: stddev > Computing stats ... group 1/1: stddev (1/1) > Computing stats ... group 1/1: stddev (1/1) > Computing stats ... group 1/1: ops > Computing stats ... group 1/1: ops (1/1) > Computing stats ... group 1/1: ops (1/1) > Computing stats ... group 1/1: ops: outliers > Computing stats ... group 1/1: ops: outliers (1/1) > Computing stats ... group 1/1: ops: rounds > Computing stats ... group 1/1: ops: rounds (1/1) > Computing stats ... group 1/1: ops: iterations > Computing stats ... group 1/1: ops: iterations (1/1) > ------------------------------------------------ benchmark: 1 tests > ------------------------------------------------ > Name (time in ms) Min Max Mean StdDev Median > IQR Outliers OPS Rounds Iterations > -------------------------------------------------------------------------------------------------------------------- > test_encrypt_rounds 259.7579 261.8740 260.9310 0.8002 260.8767 > 1.0620 2;0 3.8324 5 1 > -------------------------------------------------------------------------------------------------------------------- > > Legend: > Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) > from 1st Quartile and 3rd Quartile. > OPS: Operations Per Second, computed as 1 / Mean > =========================== short test summary info > ============================ > FAILED tests/async_client_test.py::TestClass::test_sync[pyloop] - > aiohttp.cli... > FAILED tests/async_client_test.py::TestClass::test_traceconfig_callbacks - > Ty... > =========== 2 failed, 378 passed, 1 deselected, 1 warning in 46.05s > ============ > E: pybuild pybuild:353: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; python3.9 -m pytest > -k-test_connect_wrapper > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.9 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2021/01/20/python-matrix-nio_0.15.2-1_unstable.log A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please marking it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with me so that we can identify if something relevant changed in the meantime. About the archive rebuild: The rebuild was done on EC2 VM instances from Amazon Web Services, using a clean, minimal and up-to-date chroot. Every failed build was retried once to eliminate random failures.