Skip to content

ValueError: Database is int between 0 and limit - 1 #813

@nagyv

Description

@nagyv

I regularly receive the following error:

Environment:


Request Method: POST
Request URL: https://gpodder.example.com/podcast/117cf6ca-175f-11ed-b415-6e19c3d40fe7/unsubscribe/+all

Django Version: 3.2.14
Python Version: 3.9.13
Installed Applications:
['django.contrib.contenttypes',
 'django.contrib.messages',
 'django.contrib.admin',
 'django.contrib.humanize',
 'django.contrib.auth',
 'django.contrib.sessions',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'django.contrib.postgres',
 'django_celery_results',
 'django_celery_beat',
 'mygpo.core',
 'mygpo.podcasts',
 'mygpo.chapters',
 'mygpo.search',
 'mygpo.users',
 'mygpo.api',
 'mygpo.web',
 'mygpo.publisher',
 'mygpo.subscriptions',
 'mygpo.history',
 'mygpo.favorites',
 'mygpo.usersettings',
 'mygpo.data',
 'mygpo.userfeeds',
 'mygpo.suggestions',
 'mygpo.directory',
 'mygpo.categories',
 'mygpo.episodestates',
 'mygpo.maintenance',
 'mygpo.share',
 'mygpo.administration',
 'mygpo.pubsub',
 'mygpo.podcastlists',
 'mygpo.votes',
 'health_check',
 'health_check.db',
 'health_check.cache',
 'health_check.storage',
 'health_check.contrib.migrations']
Installed Middleware:
['django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware']



Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/kombu/utils/functional.py", line 30, in __call__
    return self.__value__

During handling of the above exception ('ChannelPromise' object has no attribute '__value__'), another exception occurred:
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/virtual/base.py", line 925, in create_channel
    return self._avail_channels.pop()

During handling of the above exception (pop from empty list), another exception occurred:
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1109, in _prepare_virtual_host
    vhost = int(vhost)

During handling of the above exception (invalid literal for int() with base 10: 'gpodder'), another exception occurred:
  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/app/mygpo/podcasts/views/podcast.py", line 405, in _decorator
    return f(request, podcast, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/app/mygpo/decorators.py", line 77, in tmp
    return fn(request, *args, **kwargs)
  File "/app/mygpo/podcasts/views/podcast.py", line 329, in unsubscribe_all
    unsubscribe_podcast_all.delay(podcast.pk, user.pk)
  File "/usr/local/lib/python3.9/site-packages/celery/app/task.py", line 425, in delay
    return self.apply_async(args, kwargs)
  File "/usr/local/lib/python3.9/site-packages/celery/app/task.py", line 575, in apply_async
    return app.send_task(
  File "/usr/local/lib/python3.9/site-packages/celery/app/base.py", line 788, in send_task
    amqp.send_task_message(P, name, message, **options)
  File "/usr/local/lib/python3.9/site-packages/celery/app/amqp.py", line 510, in send_task_message
    ret = producer.publish(
  File "/usr/local/lib/python3.9/site-packages/kombu/messaging.py", line 177, in publish
    return _publish(
  File "/usr/local/lib/python3.9/site-packages/kombu/connection.py", line 523, in _ensured
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/kombu/messaging.py", line 186, in _publish
    channel = self.channel
  File "/usr/local/lib/python3.9/site-packages/kombu/messaging.py", line 209, in _get_channel
    channel = self._channel = channel()
  File "/usr/local/lib/python3.9/site-packages/kombu/utils/functional.py", line 32, in __call__
    value = self.__value__ = self.__contract__()
  File "/usr/local/lib/python3.9/site-packages/kombu/messaging.py", line 225, in <lambda>
    channel = ChannelPromise(lambda: connection.default_channel)
  File "/usr/local/lib/python3.9/site-packages/kombu/connection.py", line 895, in default_channel
    self._ensure_connection(**conn_opts)
  File "/usr/local/lib/python3.9/site-packages/kombu/connection.py", line 433, in _ensure_connection
    return retry_over_time(
  File "/usr/local/lib/python3.9/site-packages/kombu/utils/functional.py", line 312, in retry_over_time
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/kombu/connection.py", line 877, in _connection_factory
    self._connection = self._establish_connection()
  File "/usr/local/lib/python3.9/site-packages/kombu/connection.py", line 812, in _establish_connection
    conn = self.transport.establish_connection()
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/virtual/base.py", line 949, in establish_connection
    self._avail_channels.append(self.create_channel(self))
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/virtual/base.py", line 927, in create_channel
    channel = self.Channel(connection)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 737, in __init__
    self.client.ping()
  File "/usr/local/lib/python3.9/site-packages/kombu/utils/objects.py", line 30, in __get__
    return super().__get__(instance, owner)
  File "/usr/local/lib/python3.9/functools.py", line 993, in __get__
    val = self.func(instance)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1239, in client
    return self._create_client(asynchronous=True)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1195, in _create_client
    return self.Client(connection_pool=self.async_pool)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1233, in async_pool
    self._async_pool = self._get_pool(asynchronous=True)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1199, in _get_pool
    params = self._connparams(asynchronous=asynchronous)
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1173, in _connparams
    connparams['db'] = self._prepare_virtual_host(
  File "/usr/local/lib/python3.9/site-packages/kombu/transport/redis.py", line 1111, in _prepare_virtual_host
    raise ValueError(

Exception Type: ValueError at /podcast/117cf6ca-175f-11ed-b415-6e19c3d40fe7/unsubscribe/+all
Exception Value: Database is int between 0 and limit - 1, not gpodder

I think my redis connection setup is correct.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions