ros2 daemon XML-RPC can't represent 64-bit integers
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 262
- Forks
- 228
- Avg merge
- 23h 15m
- Merged PRs (30d)
- 12
Description
While investigating https://github.com/ros2/ros2cli/issues/603 , we found out that XML-RPC only supports 32-bit signed integers: http://xmlrpc.com/spec.md . Since this is used as the communication mechanism between the ros2 daemon and clients, this could be a problem in the future. We worked around that problem for the above issue by forcing the depth number in question to 0 (see https://github.com/ros2/rmw_cyclonedds/pull/305), but that won't always work.
The potential solutions are:
- Switch to using strings for all values in XML-RPC. We'd then have to marshal back-and-forth between integers and strings as needed.
- Switch to a different protocol that allows more modern types. The XML-RPC spec seems to have been last updated in 2003, so may not be up to the task anymore.
There may be other options here, but we should figure out a real solution.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the ros2 daemon and client XML-RPC communication, using ros2cli issue 603 and rmw_cyclonedds pull request 305 for the affected depth value. Compare the proposed string-marshalling and alternative-protocol approaches against XML-RPC's 32-bit integer limit. Done means selecting and implementing a protocol that safely represents 64-bit values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100