will icon indicating copy to clipboard operation
will copied to clipboard

ResponseError: invalid DB index

Open digitalfiz opened this issue 8 years ago • 5 comments

Get this a lot and the bot doesn't seem to be working....

Seems to all go down here starting with:

Wed, 09 Aug 2017 16:27:43 [ERROR] Unable to save plugin_modules_library

digitalfiz avatar Aug 09 '17 16:08 digitalfiz

Nevermind this was all caused because my redis url was wrong.

digitalfiz avatar Aug 09 '17 16:08 digitalfiz

That's great to know - would you mind posting more of the traceback? I'd love to to be providing an error message that's more like "Your redis url is wrong or down" instead of what you had to guess from. :)

skoczen avatar Aug 09 '17 21:08 skoczen

So I had the WILL_REDIS_URL setup like this: redis://redis:6379/foobot. The last part I think is supposed to signify the namespace maybe? I don't know I took what we had in our hubot config to play with this one.

This is the errors I get when it's set like that:

Starting core processes:
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save plugin_modules_library
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save scheduler_add_lock
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save scheduler_lock
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save will_periodic_list
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save will_periodic_times_list
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Failed to load last_random_schedule
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 53, in load
    val = self.storage.load(key)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 40, in load
    return self.redis.get(key)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 863, in get
    return self.execute_command('GET', name)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save last_random_schedule
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Unable to save scheduler_lock
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 32, in save
    return self.storage.save(key, pickle.dumps(value), expire=expire)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 31, in save
    return self.redis.set(key, value, ex=expire)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 1055, in set
    return self.execute_command('SET', *pieces)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Failed to load will_periodic_list
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 53, in load
    val = self.storage.load(key)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 40, in load
    return self.redis.get(key)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 863, in get
    return self.execute_command('GET', name)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Thu, 10 Aug 2017 13:26:19 [ERROR] Failed to load will_periodic_times_list
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 53, in load
    val = self.storage.load(key)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 40, in load
    return self.redis.get(key)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 863, in get
    return self.execute_command('GET', name)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
Process Process-2:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/local/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python2.7/site-packages/will/main.py", line 351, in bootstrap_scheduler
    self.scheduler.start_loop(self)
  File "/usr/local/lib/python2.7/site-packages/will/scheduler.py", line 30, in start_loop
Thu, 10 Aug 2017 13:26:19 [ERROR] Failed to load hipchat_rooms
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/will/mixins/storage.py", line 53, in load
    val = self.storage.load(key)
  File "/usr/local/lib/python2.7/site-packages/will/storage/redis_storage.py", line 40, in load
    return self.redis.get(key)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 863, in get
    return self.execute_command('GET', name)
  File "/usr/local/lib/python2.7/site-packages/redis/client.py", line 564, in execute_command
    connection.send_command(*args)
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 556, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_packed_command
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 440, in connect
    self.on_connect()
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 514, in on_connect
    if nativestr(self.read_response()) != 'OK':
  File "/usr/local/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: invalid DB index
    self.check_scheduled_actions()
  File "/usr/local/lib/python2.7/site-packages/will/scheduler.py", line 96, in check_scheduled_actions
    self._clear_random_tasks()
  File "/usr/local/lib/python2.7/site-packages/will/scheduler.py", line 43, in _clear_random_tasks
    for item_hash, item in periodic_list.items():
AttributeError: 'NoneType' object has no attribute 'items'

Then the NonType error just continues to happen for various things. Might be helpful to validate the redis url and die like when the variables and stuff are missing.

digitalfiz avatar Aug 10 '17 13:08 digitalfiz

The last part is the database index. That should be a number. Like: redis://localhost:6379/7.

Out of the box, every Redis instance supports 16 databases. The database index is the number you see at the end of a Redis URL: redis://localhost:6379/0 . The default database is 0 but you can change that to any number from 0-15 (and you can configure Redis to support more databases, look in redis.conf)

woohgit avatar Oct 09 '17 06:10 woohgit

So the fix for this is to have more useful error messages come when we have malformed URIs coming through. A specific callout that the index should be a number would be great.

skoczen avatar Oct 09 '17 21:10 skoczen