eclipse-cyclonedds / eclipse-cyclonedds/cyclonedds-python
Bundled `idlc` in cyclonedds 11.0.1 Linux wheel crashes with segmentation fault
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 110
- Forks
- 68
- Avg merge
- 1h 8m
- Merged PRs (30d)
- 1
Description
Description
The idlc executable bundled with cyclonedds==11.0.1 crashes immediately with a segmentation fault on Linux.
The issue has been reproduced on both Ubuntu 22.04 and Ubuntu 24.04. It is also reproducible in a newly created Ubuntu Docker container.
The same behavior occurs when running the bundled idlc directly, through cyclonedds.tools.wheel_idlc, and when invoking the dynamic loader with --list.
Tested environments
Ubuntu 22.04
OS: Ubuntu 22.04
Architecture: x86_64
cyclonedds: 11.0.1
Wheel SHA256:
9eaa0e08ea41206b495f36fa4c008ff89113f78a39e54f4a17793d9a68e7b978
Ubuntu 24.04
OS: Ubuntu 24.04
Architecture: x86_64
cyclonedds: 11.0.1
Wheel SHA256:
3e96507088c57165f7c189c3a85be866f74c7449fb0cbc6316ad306e5f599be1
The issue was also reproduced in a clean Ubuntu Docker container.
Steps to reproduce
Install the package:
python3 -m pip install cyclonedds==11.0.1
Locate the installed idlc:
python3 -m pip show -f cyclonedds | grep idlc
For example, on Ubuntu 22.04:
cyclonedds/.libs/idlc
cyclonedds/__idlc__.py
cyclonedds/tools/wheel_idlc/__init__.py
The bundled executable is located at:
~/.local/lib/python3.10/site-packages/cyclonedds/.libs/idlc
Run it directly:
~/.local/lib/python3.10/site-packages/cyclonedds/.libs/idlc -h
Actual result
Segmentation fault (core dumped)
Reproduction through the Python wrapper
Run:
python3 -c \
'from cyclonedds.tools.wheel_idlc import command; command()' \
-h
Actual result
Segmentation fault (core dumped)
Reproduction with an empty environment
SITE=/home/user/.local/lib/python3.10/site-packages
IDLC=$SITE/cyclonedds/.libs/idlc
env -i \
HOME="$HOME" \
PATH=/usr/bin:/bin \
/lib64/ld-linux-x86-64.so.2 --list "$IDLC"
echo $?
Actual result
Segmentation fault (core dumped)
139
Expected behavior
Running:
idlc -h
or the bundled equivalent:
/path/to/site-packages/cyclonedds/.libs/idlc -h
should display the idlc command-line help and exit normally.
It should also be possible to use the bundled compiler for Python IDL generation, for example:
idlc -l py example.idl
without the executable terminating with a segmentation fault.
Contributor guide
No contributing guide indexed for this repository
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 reproducing the crash with the bundled .libs/idlc executable, the cyclonedds.tools.wheel_idlc command(), and the empty-environment loader command. Read cyclonedds/idlc.py and cyclonedds/tools/wheel_idlc/init.py alongside the wheel contents. Done means idlc -h exits normally and idlc -l py example.idl can run without a segmentation fault.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100