Fix a bug that causes an XmlRpc::XmlRpcException#928
Fix a bug that causes an XmlRpc::XmlRpcException#928afakihcpr wants to merge 1 commit intoros:kinetic-develfrom
Conversation
|
I've discussed this with @afakihcpr, and there's a bug in This could also impact However, a change in I give you my 👍 anyway. Nice finding. |
|
Some related discussion in #836. Looks like @afakihcpr found the magic code path where ros_comm/clients/roscpp/src/libros/master.cpp Line 238 in 6742631 My preference would be to handle this in I don't see this as a super-disruptive change; it is correcting a wrong behaviour in that execute should never return true unless the RPC succeeded and |
b412dfe to
a715209
Compare
The exception is raised if the node is trying to subscribe to a topic after rosmaster dies.
a715209 to
24e561e
Compare
|
Replaced by #938. |
The exception is raised if the node is trying to subscribe to a topic after rosmaster dies. In this case, the node will be stuck in the while loop in
ros::master::execute():https://github.com/ros/ros_comm/blob/kinetic-devel/clients/roscpp/src/libros/master.cpp#L189
if the condition
(!ros::isShuttingDown() && !XMLRPCManager::instance()->isShuttingDown())becomes false, the loop would be exited and the function returns True althoughpayloadis invalid.A simple example to reproduce:
If we run roscore, then run the above node, then kill roscore then try to stop the node with Ctrl-C we will get:
terminate called after throwing an instance of ' XmlRpc::XmlRpcException'@dirk-thomas
FYI @mikepurvis @efernandez