ros2 / ros2/ros2cli

ros2 daemon XML-RPC can't represent 64-bit integers

Open
#629 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
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:

  1. 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.
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.