In Python2, the e.message field is left untouched by oslo messaging, so taking that avoids the traceback. In Python3 however, that field does not exist.
So as far as I can figure, the only Python2+3 way to avoid the traceback is to "undo" what oslo messaging does to e.args[0]
Thanks for such a detailed investigation, Aimee!
As someone mentioned over ML, Oslo messaging appends the traceback to e.args[0] of the remote exception on RPC call. /github. com/openstack/ oslo.messaging/ blob/5690156d9b 73e39547dbc3d27 b12b41321bb6500 /oslo_messaging /_drivers/ common. py#L207 /github. com/openstack/ oslo.messaging/ blob/5690156d9b 73e39547dbc3d27 b12b41321bb6500 /oslo_messaging /_drivers/ common. py#L242
https:/
https:/
In Python2, the e.message field is left untouched by oslo messaging, so taking that avoids the traceback. In Python3 however, that field does not exist.
So as far as I can figure, the only Python2+3 way to avoid the traceback is to "undo" what oslo messaging does to e.args[0]
I'm working on a patch.