RTI DDS警告崩溃程序

时间:2016-10-05 20:04:13

标签: publish-subscribe data-distribution-service

我正在运行一个使用RTI DDS的程序,并且会遇到以下警告消息以及持续的程序崩溃:

No transport available to reach locator shmem://0000:0202:0402:0000:0000:0000:0000:0000:7411

可能导致上述问题的原因是什么?该问题的解决方案是什么?我正在RTI DDS 5.2.0上运行RHEL 6.8

编辑:

这里也是QOS文件

?xml version="1.0"?>
<dds>
    <qos_library name="Keep_History_Library">
        <qos_profile name="Keep_Deep_History_profile" is_default_qos="true">
            <participant_qos>
                <discovery>
                    <initial_peers>
                        <element>239.255.0.1</element>
                        <element>4@builtin.udpv4://127.0.0.1</element>
                        <element>builtin.shmem://</element>
                    </initial_peers>
                    <multicast_receive_addresses>
                        <element>239.255.0.1</element>
                    </multicast_receive_addresses>
                </discovery>
                <property>
                    <value>
                        <!--UDP/IP Transport configuration -->
                        <element>
                            <name>dds.transport.UDPv4.builtin.parent.message_size_max</name>
                            <value>65536</value>
                        </element>
                        <element>
                            <name>dds.transport.UDPv4.builtin.send_socket_buffer_size</name>
                            <value>1000000</value>
                        </element>
                        <element>
                            <name>dds.transport.UDPv4.builtin.recv_socket_buffer_size</name>
                            <value>2000000</value>
                        </element>
                        <!-- Definition of the flow controller See users' manual section 
                        6.6 FlowControllers -->
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.scheduling_policy</name>
                            <value>DDS_RR_FLOW_CONTROLLER_SCHED_POLICY</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.period.sec</name>
                            <value>0</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.period.nanosec</name>
                            <value>10000000</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.max_tokens</name>
                            <value>100</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.tokens_added_per_period</name>
                            <value>40</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.tokens_leaked_per_period</name>
                            <value>0</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.bytes_per_token</name>
                            <value>66000</value>
                        </element>
                    </value>
                </property>
            </participant_qos>
       <participant_factory_qos>
            <logging>
                <verbosity>ALL</verbosity>
                <category>ALL</category>
                <print_format>TIMESTAMPED</print_format>
                <output_file>/root/Desktop/ddslog.txt</output_file>
            </logging>
        </participant_factory_qos>
            <datawriter_qos name="ReliableWriter">
                <publish_mode>
                    <kind>ASYNCHRONOUS_PUBLISH_MODE_QOS</kind>
                    <flow_controller_name>DEFAULT_FLOW_CONTROLLER_NAME</flow_controller_name>
                </publish_mode>
                <durability>
                    <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
                </durability>
                <history>
                    <kind>KEEP_LAST_HISTORY_QOS</kind>
                    <depth>10</depth>
                </history>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <publication_name>
                    <name>DataWriter</name>
                </publication_name>
            </datawriter_qos>

            <datareader_qos name="ReliableReader">
                <history>
                    <kind>KEEP_LAST_HISTORY_QOS</kind>
                    <depth>10</depth>
                </history>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <durability>
                    <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
                </durability>
                <subscription_name>
                    <name>DataReader</name>
                </subscription_name>
            </datareader_qos>
        </qos_profile>

        <qos_profile name="Keep_Short_History_profile" base_name="Keep_Deep_History_profile">
            <participant_qos>
                <discovery>
                    <initial_peers>
                        <element>239.255.0.1</element>
                        <element>4@builtin.udpv4://127.0.0.1</element>
                        <element>builtin.shmem://</element>
                    </initial_peers>
                    <multicast_receive_addresses>
                        <element>239.255.0.1</element>
                    </multicast_receive_addresses>
                </discovery>
                <property>
                    <value>
                        <!--UDP/IP Transport configuration -->
                        <element>
                            <name>dds.transport.UDPv4.builtin.parent.message_size_max</name>
                            <value>65536</value>
                        </element>
                        <element>
                            <name>dds.transport.UDPv4.builtin.send_socket_buffer_size</name>
                            <value>1000000</value>
                        </element>
                        <element>
                            <name>dds.transport.UDPv4.builtin.recv_socket_buffer_size</name>
                            <value>2000000</value>
                        </element>
                        <!-- Definition of the flow controller See users' manual section 
                        6.6 FlowControllers -->
                        <element>
                            <name>
                                dds.flow_controller.token_bucket.MyFlowController.scheduling_policy
                            </name>
                            <value>DDS_RR_FLOW_CONTROLLER_SCHED_POLICY</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.period.sec</name>
                            <value>0</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.period.nanosec</name>
                            <value>10000000</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.max_tokens</name>
                            <value>100</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.tokens_added_per_period</name>
                            <value>40</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.tokens_leaked_per_period</name>
                            <value>0</value>
                        </element>
                        <element>
                            <name>dds.flow_controller.token_bucket.MyFlowController.token_bucket.bytes_per_token</name>
                            <value>66000</value>
                        </element>
                    </value>
                </property>
            </participant_qos>
       <participant_factory_qos>
            <logging>
                <verbosity>ALL</verbosity>
                <category>ALL</category>
                <print_format>TIMESTAMPED</print_format>
                <output_file>/root/Desktop/ddslog.txt</output_file>
            </logging>
        </participant_factory_qos>
            <datawriter_qos name="ReliableWriter">
                <publish_mode>
                    <kind>ASYNCHRONOUS_PUBLISH_MODE_QOS</kind>
                    <flow_controller_name>DEFAULT_FLOW_CONTROLLER_NAME</flow_controller_name>
                </publish_mode>
                <history>
                    <kind>KEEP_LAST_HISTORY_QOS</kind>
                    <depth>1</depth>
                </history>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <durability>
                    <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
                </durability>
                <publication_name>
                    <name>HistoryDataWriter</name>
                </publication_name>
            </datawriter_qos>

            <datareader_qos name="ReliableReader">
                <history>
                    <kind>KEEP_LAST_HISTORY_QOS</kind>
                    <depth>1</depth>
                </history>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <durability>
                    <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
                </durability>
                <subscription_name>
                    <name>HistoryDataReader</name>
                </subscription_name>
            </datareader_qos>
        </qos_profile>
    </qos_library>
</dds>

1 个答案:

答案 0 :(得分:3)

@ jgr208&#34;没有可用的交通工具到达定位器&#34;消息是响应您的应用程序在发现的第一阶段接收定位器,它没有传输。这只是一个警告,不会导致您的应用程序崩溃。实际上,这可能是正常行为,具体取决于您的应用程序如何使用传输进行设置。以下知识库文章对此进行了描述:

https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean

但是,5.2.0中的警告消息可能会有所不同。

此警告消息不会导致崩溃。因此,我们需要更多信息来确定崩溃发生的原因。你能从核心转储中获得堆栈跟踪,还是通过gdb运行应用程序来查看后向跟踪?