Bug #21383
indexation: ne pas crasher quand une source de donnée n'est pas dispo
Début:
24 janvier 2018
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
From: Cron Daemon <root@combo.dev.entrouvert.org> To: root@combo.dev.entrouvert.org Subject: Cron <root@combo> cd / && run-parts --report /etc/cron.hourly /etc/cron.hourly/combo: Traceback (most recent call last): File "/usr/lib/combo/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line utility.execute() File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 346, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python2.7/dist-packages/hobo/multitenant/management/commands/tenant_command.py", line 48, in run_from_argv klass.run_from_argv(args) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 394, in run_from_argv self.execute(*args, **cmd_options) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute output = self.handle(*args, **options) File "/usr/lib/python2.7/dist-packages/combo/apps/search/management/commands/update_index.py", line 38, in handle return super(Command, self).handle(**options) File "/usr/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 183, in handle return super(Command, self).handle(*items, **options) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 623, in handle label_output = self.handle_label(label, **options) File "/usr/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 188, in handle_label self.update_backend(label, using) File "/usr/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 233, in update_backend do_update(backend, index, qs, start, end, total, verbosity=self.verbosity, commit=self.commit) File "/usr/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 96, in do_update backend.update(index, current_qs, commit=commit) File "/usr/lib/python2.7/dist-packages/haystack/backends/whoosh_backend.py", line 196, in update doc = index.full_prepare(obj) File "/usr/lib/python2.7/dist-packages/haystack/indexes.py", line 212, in full_prepare self.prepared_data = self.prepare(obj) File "/usr/lib/python2.7/dist-packages/combo/data/search_indexes.py", line 37, in prepare return super(PageIndex, self).prepare(obj) File "/usr/lib/python2.7/dist-packages/haystack/indexes.py", line 203, in prepare self.prepared_data[field.index_fieldname] = field.prepare(obj) File "/usr/lib/python2.7/dist-packages/haystack/fields.py", line 159, in prepare return self.convert(super(CharField, self).prepare(obj)) File "/usr/lib/python2.7/dist-packages/haystack/fields.py", line 79, in prepare return self.prepare_template(obj) File "/usr/lib/python2.7/dist-packages/haystack/fields.py", line 137, in prepare_template return t.render(Context({'object': obj})) File "/usr/lib/python2.7/dist-packages/django/template/backends/django.py", line 74, in render return self.template.render(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 210, in render return self._render(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 202, in _render return self.nodelist.render(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 905, in render bit = self.render_node(node, context) File "/usr/lib/python2.7/dist-packages/django/template/debug.py", line 79, in render_node return node.render(context) File "/usr/lib/python2.7/dist-packages/django/template/defaulttags.py", line 40, in render output = self.nodelist.render(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 905, in render bit = self.render_node(node, context) File "/usr/lib/python2.7/dist-packages/django/template/debug.py", line 79, in render_node return node.render(context) File "/usr/lib/python2.7/dist-packages/django/template/defaulttags.py", line 217, in render nodelist.append(node.render(context)) File "/usr/lib/python2.7/dist-packages/django/template/debug.py", line 89, in render output = self.filter_expression.resolve(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 648, in resolve obj = self.var.resolve(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 789, in resolve value = self._resolve_lookup(context) File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 849, in _resolve_lookup current = current() File "/usr/lib/python2.7/dist-packages/combo/data/models.py", line 538, in render_for_search return HTMLParser().unescape(strip_tags(self.render(context))) File "/usr/lib/python2.7/dist-packages/combo/data/models.py", line 728, in render return super(FeedCell, self).render(context) File "/usr/lib/python2.7/dist-packages/combo/data/models.py", line 505, in render context.update(self.get_cell_extra_context(context)) File "/usr/lib/python2.7/dist-packages/combo/data/models.py", line 708, in get_cell_extra_context feed_response = requests.get(utils.get_templated_url(self.url)) File "/usr/lib/python2.7/dist-packages/requests/api.py", line 70, in get return request('get', url, params=params, **kwargs) File "/usr/lib/python2.7/dist-packages/requests/api.py", line 56, in request return session.request(method=method, url=url, **kwargs) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 475, in request resp = self.send(prep, **send_kwargs) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 596, in send r = adapter.send(request, **kwargs) File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 487, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='viva-interactif.com', port=80): Max retries exceeded with url: /getrss.html?flux=rss_toutes_rubriques (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f01fab96cd0>: Failed to establish a new connection: [Errno 110] Connection timed out',))
Faire en sorte que dans ce cas les cellules en panne répondent du vide.
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0001-feedcell-do-not-fail-if-service-is-not-available-213.patch 0001-feedcell-do-not-fail-if-service-is-not-available-213.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
je propose de mettre un try/except autour de requests.get
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 82503cdd7d6817cd4c17aaad482b7843efef3d51 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Oct 22 11:19:02 2019 +0200 feedcell: do not fail if service is not available (#21383)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
feedcell: do not fail if service is not available (#21383)