Skip to content

TCPTransportInterface hangs on clean() [13648] #2010

Closed
@hoanglongmoovita

Description

@hoanglongmoovita

When calling delete delete_participant on DomainPariticpantFactory on publisher side, the program hangs, which traces back to TCPTransportInterface::clean() -> channel->clear() -> thread_.join().

Expected Behavior

The clean up function should exit.

Current Behavior

The clean up function hangs forever

Steps to Reproduce

  1. Create publisher and subscriber profile with tcp transport ( 2 different participants ).
  2. Connect and send message.
  3. Clean up by deleting participants. The subscriber exits normally, the publisher hangs forever

System information

  • Fast-RTPS version: commit 5b8b905
  • OS: Ubuntu 20.04
  • Network interfaces: eth0 (192.168.1.1), lo (127.0.0.1)

Additional context

I tried removing the line in TCPChannelResourceBasic::disconnect():106 and call change_status(eConnectionStatus::eDisconnected) at the beginning of the disconnect() function and the clean() function does not hang anymore.

Additional resources

  • XML profiles file: (had to change file extension to log as github does not allow xml file attachment
    default.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions