eclipse-cyclonedds / eclipse-cyclonedds/cyclonedds-python

Python pub to C sub fails when using large/complex IDL

Open
#190 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
110
Forks
68
Avg merge
1h 8m
Merged PRs (30d)
1

Description

I've been struggling for a while with Python/C interoperability when using a complex topic (simpler ones work). On one Ubuntu 20.04 PC, Python to C interoperability fails (but succeeds if I comment out some of the topic fields). A clue is an OpenDDS subscriber says 'ERROR: Sedp::TypeLookupRequestReader::data_received_i - failed to take type lookup request'

I don't really know how to debug further so I've forked good old i11eperf and made branch 'complex-union' to demonstrate the problem: git clone https://github.com/smnrgrs/i11eperf.git and switch to branch 'complex-union'.

I have extended the 'ou' topic, and added a python publisher in the Python folder.

I see the following:
Python pub -> osub FAIL
Python pub -> asub FAIL
apub -> osub OK
Python pub -> Python sub OK

If the case TDTypeBd is removed from the IDL union at line 260, then interoperability works. Any suggestions would be gratefully received.

Contributor guide

No contributing guide indexed for this repository

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 with the reporter's i11eperf complex-union branch and the Python folder, then inspect the extended ou topic and the IDL union around line 260. Reproduce the Python publisher to C subscriber failure and compare it with the working publisher and Python-subscriber cases. Done means identifying and fixing the interoperability failure involving TDTypeBd, with the reported combinations working.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.