RPC client recreates exception instance failed

Bug #1554368 reported by zengchen on 2016-03-08
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

The rpc client will recreate exception instance if the exception of remote calling happens. But, recreating will fail, we will get an error : "__init__() got multiple values for keyword argument message". Because the arguments given to __init__ of CinderException are like this: __init__("some message", **{'message' : "some message", 'code' : 500}).

description: updated
Revision history for this message
Michal Dulko (michal-dulko-f) wrote :

Can you provide reproduction steps?

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

Fix proposed to branch: master
Review: https://review.openstack.org/290217

Changed in cinder:
assignee: nobody → zengchen (chenzeng2)
status: New → In Progress
Revision history for this message
zengchen (chenzeng2) wrote :

This bug will happen by calling remote interface through rpc's 'call' method. If an exception of remote interface happens and throw it by raising, then rpc client will catch it and recreate the exception instance, but will fail.

The reproduction steps are like these:
1. find a remote interface which will be called by rpc's 'call' method and will raise an exception instance of CinderException

2.call this interface on the api, then you will find the error happens at /usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/common.py : deserialize_remote_exception(224)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on cinder (master)

Change abandoned by zengchen (<email address hidden>) on branch: master
Review: https://review.openstack.org/290217

Revision history for this message
Sean McGinnis (sean-mcginnis) wrote : Bug Assignee Expired

Unassigning due to no activity for > 6 months.

Changed in cinder:
assignee: zengchen (chenzeng2) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers