when an exception is thrown by an RPC server function, oslo_messaging.rpc does not use the serializer
Bug #1648254 reported by
Amrith Kumar
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
oslo.messaging |
Invalid
|
Medium
|
Unassigned |
Bug Description
When oslo_messaging.rpc is used with a serializer, then messages sent and replies received are serialized using that serializer. In the normal path (i.e for a cast() or call(), the arguments to the call are serialized in the client and for a call() the returned value from the RPC function is serialized in the dispatcher.
However, if an RPC server function throws an error, then the error is caught by the handler in _process_incoming() in server.py and it does not use the serializer provided.
Changed in oslo.messaging: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in oslo.messaging: | |
assignee: | nobody → jun923.gu (gujun1989) |
Changed in oslo.messaging: | |
assignee: | jun923.gu (gujun1989) → nobody |
Changed in oslo.messaging: | |
status: | Confirmed → Invalid |
To post a comment you must log in.
This may be not a bug, or the bug had been fixed. I have analyzed the oslo.messaging for 5.35.0-1.el7 version. Although _process_incoming catch an exception and don't use the serializer provided to serialize, the _send_reply function will do this in oslo_messaging/ _drivers/ amqpdriver. py:AMQPIncoming Message. So I think this should be a bug.