ckan / ckanext-harvest

Remote harvesting extension for CKAN
130 stars 203 forks source link

Error sending email notifications #469

Closed FuhuXia closed 2 years ago

FuhuXia commented 3 years ago

Email notification is broken with master branch running on CKAN core 2.8.9.

Install latest version of ckanext-harvest on a CKAN 2.8.9 docker container, turn on email notification by setting:

ckan.harvest.status_mail.errored = True
ckan.harvest.status_mail.all = True

When a harvest job is finished, this error shows up:

2021-10-20 01:41:22,214 INFO  [ckanext.harvest.logic.action.update] Marking job as finished https://demo.ckan.org/ a59de519-0f98-4bb5-9be9-03f3cb2f0344
2021-10-20 01:41:22,239 DEBUG [ckanext.harvest.logic.action.update] Updating search index for harvest source: demo-ckan
2021-10-20 01:41:22,290 DEBUG [ckanext.harvest.logic.action.update] Notifications: All:True On error:True Errors:0
Traceback (most recent call last):
  File "/usr/lib/ckan/venv/bin/paster", line 8, in <module>
    sys.exit(run())
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 102, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 141, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/script/command.py", line 236, in run
    result = self.command()
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/commands/harvester.py", line 231, in command
    self.run_harvester()
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/commands/harvester.py", line 378, in run_harvester
    utils.run_harvester()
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/utils.py", line 360, in run_harvester
    tk.get_action("harvest_jobs_run")(context, {})
  File "/usr/lib/ckan/venv/src/ckan/ckan/logic/__init__.py", line 498, in wrapped
    result = _action(context, data_dict, **kw)
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/logic/action/update.py", line 673, in harvest_jobs_run
    send_summary_email(context, job_obj.source.id, status)
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/logic/action/update.py", line 766, in send_summary_email
    subject, body = prepare_summary_mail(context, source_id, status)
  File "/usr/lib/ckan/venv/src/ckanext-harvest/ckanext/harvest/logic/action/update.py", line 749, in prepare_summary_mail
    body = render('emails/summary_email.txt', extra_vars)
  File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 126, in render
    *pargs, **kwargs)
  File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 188, in _pylons_prepare_renderer
    elif session.last_accessed:
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/werkzeug/local.py", line 347, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/registry.py", line 137, in __getattr__
    return getattr(self._current_obj(), attr)
  File "/usr/lib/ckan/venv/local/lib/python2.7/site-packages/paste/registry.py", line 197, in _current_obj
    'thread' % self.____name__)
TypeError: No object (name: session) has been registered for this thread
(venv)ckan@a3ad1608edb5:~/venv$
FuhuXia commented 3 years ago

Related to this change https://github.com/ckan/ckanext-harvest/pull/459.