#70 first submission to resultsdb fails: KeyError: "'dummy' not found in []"
Closed: Fixed None Opened 7 years ago by kparal.

The first time I set up ResultsDB 2.0 and send results to it, I get:

--------------------------------------------------------------------------------
DEBUG in messaging [/home/kparal/devel/taskotron/resultsdb/resultsdb/messaging.py:111]:
Found the following installed messaging plugin {}
--------------------------------------------------------------------------------
[messaging.py:111] 2017-01-18 15:12:47 DEBUG   Found the following installed messaging plugin {}
[messaging.py:111] 2017-01-18 15:12:47 DEBUG   Found the following installed messaging plugin {}
[_internal.py:87] 2017-01-18 15:12:47 INFO    127.0.0.1 - - [18/Jan/2017 15:12:47] "POST /api/v2.0/results HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/kparal/devel/taskotron/resultsdb/resultsdb/proxy.py", line 61, in __call__
    return self.app(environ, start_response)
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/kparal/devel/taskotron/resultsdb/env_resultsdb/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/kparal/devel/taskotron/resultsdb/resultsdb/controllers/api_v2.py", line 637, in create_result
    kwargs=app.config['MESSAGE_BUS_KWARGS'],
  File "/home/kparal/devel/taskotron/resultsdb/resultsdb/messaging.py", line 113, in load_messaging_plugin
    raise KeyError("%r not found in %r" % (name, classes.keys()))
KeyError: "'dummy' not found in []"

Reproducer:
1. clean checkout of resultsdb
2. rm /var/tmp/resultsdb_db.sqlite
3. DEV=true ./init_db.sh
4. DEV=true python runapp.py
5. runtask --item htop-2.0.2-1.fc25 --type koji_build --arch x86_64 ~/devel/taskotron/task-rpmlint/runtask.yml --debug

I can repeatedly reproduce this with the steps above.


This ticket had assigned some Differential requests:
D1087
D1111

After running python setup.py develop in the virtualenv, it seems to work fine even on the first try:

--------------------------------------------------------------------------------
DEBUG in messaging [/home/kparal/devel/taskotron/resultsdb/resultsdb/messaging.py:111]:
Found the following installed messaging plugin {'dummy': <class 'resultsdb.messaging.DummyPlugin'>, 'fedmsg': <class 'resultsdb.messaging.FedmsgPlugin'>}
--------------------------------------------------------------------------------
[messaging.py:111] 2017-01-18 15:37:46 DEBUG   Found the following installed messaging plugin {'dummy': <class 'resultsdb.messaging.DummyPlugin'>, 'fedmsg': <class 'resultsdb.messaging.FedmsgPlugin'>}
[messaging.py:111] 2017-01-18 15:37:46 DEBUG   Found the following installed messaging plugin {'dummy': <class 'resultsdb.messaging.DummyPlugin'>, 'fedmsg': <class 'resultsdb.messaging.FedmsgPlugin'>}
--------------------------------------------------------------------------------
DEBUG in messaging [/home/kparal/devel/taskotron/resultsdb/resultsdb/messaging.py:121]:
Instantiating plugin <class 'resultsdb.messaging.DummyPlugin'> named dummy
--------------------------------------------------------------------------------
[messaging.py:121] 2017-01-18 15:37:46 DEBUG   Instantiating plugin <class 'resultsdb.messaging.DummyPlugin'> named dummy
[messaging.py:121] 2017-01-18 15:37:46 DEBUG   Instantiating plugin <class 'resultsdb.messaging.DummyPlugin'> named dummy
--------------------------------------------------------------------------------
INFO in messaging [/home/kparal/devel/taskotron/resultsdb/resultsdb/messaging.py:61]:
<resultsdb.messaging.DummyPlugin object at 0x7fdb03784f90>->{'id': 4}
--------------------------------------------------------------------------------
[messaging.py:61] 2017-01-18 15:37:46 INFO    <resultsdb.messaging.DummyPlugin object at 0x7fdb03784f90>->{'id': 4}
[messaging.py:61] 2017-01-18 15:37:46 INFO    <resultsdb.messaging.DummyPlugin object at 0x7fdb03784f90>->{'id': 4}
[_internal.py:87] 2017-01-18 15:37:46 INFO    127.0.0.1 - - [18/Jan/2017 15:37:46] "POST /api/v2.0/results HTTP/1.1" 201 -

If the project needs to be installed and can't run just from the checkout, maybe we should amend the readme instructions? Or make it work even without installing.

Tested, works now. Thanks.

Login to comment on this ticket.

Metadata