Package: src:hyperkitty
Version: 1.3.12-3
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:hyperkitty, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3,sphinxdoc --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_clean -X.txt.orig
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
 debian/rules binary
dh binary --with python3,sphinxdoc --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'

[... snipped ...]

  File "/usr/lib/python3/dist-packages/whoosh/index.py", line 464, in writer
    return SegmentWriter(self, **kwargs)
  File "/usr/lib/python3/dist-packages/whoosh/writing.py", line 513, in __init__
    if not try_for(self.writelock.acquire, timeout=timeout,
           ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   delay=delay):
                   ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/whoosh/util/filelock.py", line 54, in 
try_for
    v = fn()
  File "/usr/lib/python3/dist-packages/django_q/timeout.py", line 15, in 
raise_timeout_exception
    raise TimeoutException(
        f"Task exceeded maximum timeout value ({self._timeout} seconds)"
    )
django_q.exceptions.TimeoutException: Task exceeded maximum timeout value (30 
seconds)

======================================================================
ERROR: test_tag_removal_form 
(hyperkitty.tests.views.test_thread.ThreadTestCase.test_tag_removal_form)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/hyperkitty/tests/views/test_thread.py", line 199, in 
setUp
    msg = self._make_msg("msgid")
  File "/<<PKGBUILDDIR>>/hyperkitty/tests/views/test_thread.py", line 215, in 
_make_msg
    msg["Message-ID-Hash"] = add_to_list(listname, msg)
                             ~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/lib/incoming.py", line 154, in add_to_list
    email.save()
    ~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 814, in 
save
    self.save_base(
    ~~~~~~~~~~~~~~^
        using=using,
        ^^^^^^^^^^^^
    ...<2 lines>...
        update_fields=update_fields,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 892, in 
save_base
    post_save.send(
    ~~~~~~~~~~~~~~^
        sender=origin,
        ^^^^^^^^^^^^^^
    ...<4 lines>...
        using=using,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 
177, in send
    (receiver, receiver(signal=self, sender=sender, **named))
               ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/signals.py", line 54, in Email_on_post_save
    kwargs["instance"].on_post_created()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/<<PKGBUILDDIR>>/hyperkitty/models/email.py", line 222, in 
on_post_created
    self.thread.on_email_added(self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/models/thread.py", line 191, in 
on_email_added
    compute_thread_positions(self.id)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/tasks.py", line 127, in 
compute_thread_positions
    q_options={'task_name': 'compute_thread_positions'}).run()
                                                         ~~~^^
  File "/usr/lib/python3/dist-packages/django_q/tasks.py", line 730, in run
    self.id = async_task(self.func, *self.args, **self.kwargs)
              ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django_q/tasks.py", line 73, in 
async_task
    return _sync(pack)
  File "/usr/lib/python3/dist-packages/django_q/tasks.py", line 773, in _sync
    worker(task_queue, result_queue, Value("f", -1))
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django_q/worker.py", line 103, in worker
    res = f(*task["args"], **task["kwargs"])
  File "/<<PKGBUILDDIR>>/hyperkitty/tasks.py", line 139, in 
_compute_thread_positions
    compute_thread_order_and_depth(thread)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/lib/analysis.py", line 55, in 
compute_thread_order_and_depth
    walk_successors(thread.starting_email.id)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/hyperkitty/lib/analysis.py", line 40, in 
walk_successors
    obj.save(update_fields=["thread_depth", "thread_order"])
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 814, in 
save
    self.save_base(
    ~~~~~~~~~~~~~~^
        using=using,
        ^^^^^^^^^^^^
    ...<2 lines>...
        update_fields=update_fields,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 892, in 
save_base
    post_save.send(
    ~~~~~~~~~~~~~~^
        sender=origin,
        ^^^^^^^^^^^^^^
    ...<4 lines>...
        using=using,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 
177, in send
    (receiver, receiver(signal=self, sender=sender, **named))
               ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/haystack/signals.py", line 49, in 
handle_save
    index.update_object(instance, using=using)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/haystack/indexes.py", line 324, in 
update_object
    backend.update(self, [instance])
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/haystack/backends/whoosh_backend.py", 
line 260, in update
    writer = AsyncWriter(self.index)
  File "/usr/lib/python3/dist-packages/whoosh/writing.py", line 988, in __init__
    self.writer = self.index.writer(**self.writerargs)
                  ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/whoosh/index.py", line 464, in writer
    return SegmentWriter(self, **kwargs)
  File "/usr/lib/python3/dist-packages/whoosh/writing.py", line 513, in __init__
    if not try_for(self.writelock.acquire, timeout=timeout,
           ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   delay=delay):
                   ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/whoosh/util/filelock.py", line 54, in 
try_for
    v = fn()
  File "/usr/lib/python3/dist-packages/django_q/timeout.py", line 15, in 
raise_timeout_exception
    raise TimeoutException(
        f"Task exceeded maximum timeout value ({self._timeout} seconds)"
    )
django_q.exceptions.TimeoutException: Task exceeded maximum timeout value (30 
seconds)

======================================================================
FAIL: test_votes 
(hyperkitty.tests.views.test_accounts.AccountViewsTestCase.test_votes)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/hyperkitty/tests/views/test_accounts.py", line 150, in 
test_votes
    response = self.client.get(reverse("hk_user_votes"))
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 927, in get
    response = super().get(path, data=data, secure=secure, headers=headers, 
**extra)
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 457, in get
    return self.generic(
           ~~~~~~~~~~~~^
        "GET",
        ^^^^^^
    ...<6 lines>...
        },
        ^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 609, in 
generic
    return self.request(**r)
           ~~~~~~~~~~~~^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 891, in 
request
    self.check_exception(response)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 738, in 
check_exception
    raise exc_value
  File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 
55, in inner
    response = get_response(request)
  File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 197, 
in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3/dist-packages/django/contrib/auth/decorators.py", line 
23, in _wrapper_view
    return view_func(request, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/hyperkitty/views/accounts.py", line 92, in votes
    return render(request, 'hyperkitty/user_profile/votes.html', {
                "votes": all_votes,
                "subpage": "votes",
            })
  File "/usr/lib/python3/dist-packages/django/shortcuts.py", line 24, in render
    content = loader.render_to_string(template_name, context, request, 
using=using)
  File "/usr/lib/python3/dist-packages/django/template/loader.py", line 62, in 
render_to_string
    return template.render(context, request)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/backends/django.py", 
line 61, in render
    return self.template.render(context)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 175, in 
render
    return self._render(context)
           ~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/utils.py", line 111, in 
instrumented_test_render
    template_rendered.send(sender=self, template=self, context=context)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 
177, in send
    (receiver, receiver(signal=self, sender=sender, **named))
               ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 267, in 
store_rendered_templates
    store["context"].append(copy(context))
                            ~~~~^^^^^^^^^
  File "/usr/lib/python3.14/copy.py", line 82, in copy
    return copier(x)
  File "/usr/lib/python3/dist-packages/django/template/context.py", line 158, 
in __copy__
    duplicate = super().__copy__()
  File "/usr/lib/python3/dist-packages/django/template/context.py", line 39, in 
__copy__
    duplicate.dicts = self.dicts[:]
    ^^^^^^^^^^^^^^^
AttributeError: 'super' object has no attribute 'dicts' and no __dict__ for 
setting new attributes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/hyperkitty/tests/views/test_accounts.py", line 152, in 
test_votes
    self.fail("Getting the votes should not fail if "
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              "the user has never voted yet\n%s" % format_exc())
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Getting the votes should not fail if the user has never voted 
yet
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/hyperkitty/tests/views/test_accounts.py", line 150, in 
test_votes
    response = self.client.get(reverse("hk_user_votes"))
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 927, in get
    response = super().get(path, data=data, secure=secure, headers=headers, 
**extra)
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 457, in get
    return self.generic(
           ~~~~~~~~~~~~^
        "GET",
        ^^^^^^
    ...<6 lines>...
        },
        ^^
    )
    ^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 609, in 
generic
    return self.request(**r)
           ~~~~~~~~~~~~^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 891, in 
request
    self.check_exception(response)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 738, in 
check_exception
    raise exc_value
  File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 
55, in inner
    response = get_response(request)
  File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 197, 
in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3/dist-packages/django/contrib/auth/decorators.py", line 
23, in _wrapper_view
    return view_func(request, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/hyperkitty/views/accounts.py", line 92, in votes
    return render(request, 'hyperkitty/user_profile/votes.html', {
                "votes": all_votes,
                "subpage": "votes",
            })
  File "/usr/lib/python3/dist-packages/django/shortcuts.py", line 24, in render
    content = loader.render_to_string(template_name, context, request, 
using=using)
  File "/usr/lib/python3/dist-packages/django/template/loader.py", line 62, in 
render_to_string
    return template.render(context, request)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/backends/django.py", 
line 61, in render
    return self.template.render(context)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 175, in 
render
    return self._render(context)
           ~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/utils.py", line 111, in 
instrumented_test_render
    template_rendered.send(sender=self, template=self, context=context)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 
177, in send
    (receiver, receiver(signal=self, sender=sender, **named))
               ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/test/client.py", line 267, in 
store_rendered_templates
    store["context"].append(copy(context))
                            ~~~~^^^^^^^^^
  File "/usr/lib/python3.14/copy.py", line 82, in copy
    return copier(x)
  File "/usr/lib/python3/dist-packages/django/template/context.py", line 158, 
in __copy__
    duplicate = super().__copy__()
  File "/usr/lib/python3/dist-packages/django/template/context.py", line 39, in 
__copy__
    duplicate.dicts = self.dicts[:]
    ^^^^^^^^^^^^^^^
AttributeError: 'super' object has no attribute 'dicts' and no __dict__ for 
setting new attributes


----------------------------------------------------------------------
Ran 366 tests in 1871.135s

FAILED (failures=1, errors=129, skipped=4, expected failures=2)
Destroying test database for alias 'default' 
('file:memorydb_default?mode=memory&cache=shared')...
make[1]: *** [debian/rules:15: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

Reply via email to