ResponseError: invalid DB index
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
Nevermind this was all caused because my redis url was wrong.
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. :)
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.
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)
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.