[Pkg-mailman-hackers] Bug#1043098: python3-django-hyperkitty: tracebacks with update_index_one_list on mailman2 migration
Steve Langasek
vorlon at dodds.net
Sun Aug 6 01:10:58 BST 2023
Package: python3-django-hyperkitty
Version: 1.3.4-4
Severity: important
Dear Maintainer,
Having just upgraded a system to bullseye, I am in the process of migrating
my mailing lists from the obsolete mailman 2 to mailman3. Following guides
such as https://docs.mailman3.org/en/latest/migration.html leads me to run,
as list:
$ django-admin hyperkitty_import --settings mailman-web \
--pythonpath /var/lib/mailman3/hyperkitty/ -l $list_email $mbox_path
$
which succeeds (/var/lib/mailman3/hyperkitty/mailman-web.py is a forked copy
of /etc/mailman3/mailman-web.py with appropriate permissions).
I am then supposed to run update_index_one_list, which fails with a
confusing error about missing templates:
$ django-admin update_index_one_list --settings mailman-web \
--pythonpath /var/lib/mailman3/hyperkitty/ -l $list_email
Indexing 421 emails
[ERROR/MainProcess] Failed indexing 1 - 421 (retry 5/5): search/indexes/hyperkitty/email_text.txt (pid 6818): search/indexes/hyperkitty/email_text.txt
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/haystack/management/commands/update_index.py", line 111, in do_update
backend.update(index, current_qs, commit=commit)
File "/usr/lib/python3/dist-packages/haystack/backends/whoosh_backend.py", line 269, in update
doc = index.full_prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/indexes.py", line 236, in full_prepare
self.prepared_data = self.prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/indexes.py", line 227, in prepare
self.prepared_data[field.index_fieldname] = field.prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 235, in prepare
return self.convert(super(CharField, self).prepare(obj))
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 99, in prepare
return self.prepare_template(obj)
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 212, in prepare_template
t = loader.select_template(template_names)
File "/usr/lib/python3/dist-packages/django/template/loader.py", line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
django.template.exceptions.TemplateDoesNotExist: search/indexes/hyperkitty/email_text.txt
Traceback (most recent call last):
File "/usr/bin/django-admin", line 5, in <module>
management.execute_from_command_line()
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/usr/lib/python3/dist-packages/hyperkitty/management/commands/update_index_one_list.py", line 41, in handle
update_index(listname=options.get("listname")[0],
File "/usr/lib/python3/dist-packages/hyperkitty/search_indexes.py", line 117, in update_index
update_cmd.update_backend("hyperkitty", "default")
File "/usr/lib/python3/dist-packages/haystack/management/commands/update_index.py", line 319, in update_backend
max_pk = do_update(
File "/usr/lib/python3/dist-packages/haystack/management/commands/update_index.py", line 111, in do_update
backend.update(index, current_qs, commit=commit)
File "/usr/lib/python3/dist-packages/haystack/backends/whoosh_backend.py", line 269, in update
doc = index.full_prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/indexes.py", line 236, in full_prepare
self.prepared_data = self.prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/indexes.py", line 227, in prepare
self.prepared_data[field.index_fieldname] = field.prepare(obj)
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 235, in prepare
return self.convert(super(CharField, self).prepare(obj))
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 99, in prepare
return self.prepare_template(obj)
File "/usr/lib/python3/dist-packages/haystack/fields.py", line 212, in prepare_template
t = loader.select_template(template_names)
File "/usr/lib/python3/dist-packages/django/template/loader.py", line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
django.template.exceptions.TemplateDoesNotExist: search/indexes/hyperkitty/email_text.txt
$
This is quite confusing, as
/usr/lib/python3/dist-packages/hyperkitty/templates/search/indexes/hyperkitty/email_text.txt
certainly exists.
It appears the only impact is on searchability of the mailing list
archive, which isn't terribly important to me, but I'd like to know why
it throws a backtrace.
-- System Information:
Debian Release: 11.7
APT prefers oldstable-updates
APT policy: (500, 'oldstable-updates'), (500, 'oldstable')
Architecture: i386 (x86_64)
Foreign Architectures: amd64
Kernel: Linux 4.19.0-24-amd64 (SMP w/1 CPU thread)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages python3-django-hyperkitty depends on:
ii fonts-glyphicons-halflings 1.009~3.4.1+dfsg-2
ii libjs-bootstrap4 4.5.2+dfsg1-8~deb11u1
ii libjs-sphinxdoc 3.4.3-2
ii python3 3.9.2-3
ii python3-dateutil 2.8.1-6
ii python3-django 2:2.2.28-1~deb11u1
ii python3-django-compressor 2.4-2
ii python3-django-extensions 3.0.3-3
ii python3-django-gravatar2 1.4.4-2
ii python3-django-haystack 3.0-1
ii python3-django-mailman3 1.3.5-2
ii python3-django-q 1.2.1-1
ii python3-djangorestframework 3.12.1-1
ii python3-elasticsearch 7.1.0-3
ii python3-flufl.lock 5.0.1-1
ii python3-mailmanclient 3.3.2-1
ii python3-networkx 2.5+ds-2
ii python3-robot-detection 0.4.0-2
ii python3-tz 2021.1-1
Versions of packages python3-django-hyperkitty recommends:
ii mailman3-web 0+20200530-2
python3-django-hyperkitty suggests no packages.
-- no debconf information
More information about the Pkg-mailman-hackers
mailing list