pretalx / pretalx

Conference planning tool: CfP, scheduling, speaker management
https://pretalx.com
Apache License 2.0
711 stars 200 forks source link

redis Python package was missing after installation #675

Closed kannes closed 5 years ago

kannes commented 5 years ago

I followed https://docs.pretalx.org/en/latest/administrator/installation.html on a Ubuntu 18.04 server.

When trying to save https://pretalx.nullisland.org/orga/event/testevent/settings with nothing changed but a small landing page text I got a HTTP 500

In the logs I saw :

ERROR 2019-04-26 10:49:53,295 django.request log Internal Server Error: /orga/event/testevent/settings
Traceback (most recent call last):
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/views/generic/edit.py", line 194, in post
    return super().post(request, *args, **kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/django/views/generic/edit.py", line 142, in post
    return self.form_valid(form)
  File "/var/pretalx/.local/lib/python3.6/site-packages/pretalx/orga/views/event.py", line 91, in form_valid
    regenerate_css.apply_async(args=(form.instance.pk,))
  File "/var/pretalx/.local/lib/python3.6/site-packages/celery/app/task.py", line 535, in apply_async
    **options
  File "/var/pretalx/.local/lib/python3.6/site-packages/celery/app/base.py", line 725, in send_task
    with self.producer_or_acquire(producer) as P:
  File "/var/pretalx/.local/lib/python3.6/site-packages/celery/utils/objects.py", line 86, in __enter__
    *self.fb_args, **self.fb_kwargs
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/resource.py", line 83, in acquire
    R = self.prepare(R)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/pools.py", line 62, in prepare
    p = p()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/utils/functional.py", line 209, in __call__
    return self.evaluate()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/utils/functional.py", line 212, in evaluate
    return self._fun(*self._args, **self._kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/pools.py", line 42, in create_producer
    conn = self._acquire_connection()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/pools.py", line 39, in _acquire_connection
    return self.connections.acquire(block=True)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/resource.py", line 83, in acquire
    R = self.prepare(R)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 969, in prepare
    resource = resource()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/utils/functional.py", line 209, in __call__
    return self.evaluate()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/utils/functional.py", line 212, in evaluate
    return self._fun(*self._args, **self._kwargs)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 941, in new
    return self.connection.clone()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 603, in clone
    return self.__class__(**dict(self._info(resolve=False), **kwargs))
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 613, in _info
    D = self.transport.default_connection_params
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 865, in transport
    self._transport = self.create_transport()
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/connection.py", line 592, in create_transport
    return self.get_transport_cls()(client=self)
  File "/var/pretalx/.local/lib/python3.6/site-packages/kombu/transport/redis.py", line 1021, in __init__
    raise ImportError('Missing redis library (pip install redis)')
ImportError: Missing redis library (pip install redis)

Installing redis via pip (and restarting the pretalx-web.service, not sure if that was needed) fixed this.

vmx commented 5 years ago

Not sure if it's related. When we upgraded pretalx, there was an too old version of redis installed, we had to do a manual pip install. As I didn't know how to reproduce I didn't open an issue as it was way to vague. But seeing this issue I thought I bring it up.

kannes commented 5 years ago

I will make a PR for this, adding redis at the same place where gunicorn is installed.