[tao-users] Event channel's mt dispatching not responding

Chao Wang 王超 cswang198675 at gmail.com
Fri Feb 9 10:26:03 CST 2018


Hi,


 TAO VERSION: 2.3.0
 ACE VERSION: 6.3.0

 HOST MACHINE and OPERATING SYSTEM:
        (event supplier) Pentium Dual-Core 3.2GHz, Ubuntu Linux with
kernel v3.19.0

        (event service) Intel i5-4590 3.3GHz, four-core machine,
Ubuntu Linux with kernel v4.2.0

        (event consumer) Pentium Dual-Core 3.2GHz, Ubuntu Linux with
kernel v3.13.0

COMPILER NAME AND VERSION (AND PATCHLEVEL):
g++ (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5

    THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
    specific file, simply state which one]:

       #include "ace/config-linux.h"

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
    use a link to a platform-specific file, simply state which one
    (unless this isn't used in this case, e.g., with Microsoft Visual
    C++)]:
       CPPFLAGS += -std=c++11

       include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

       INSTALL+PREFIX = /home/ACE

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
    (used by MPC when you generate your own makefiles):

        I don't have such a file.

    AREA/CLASS/EXAMPLE AFFECTED:
[What example failed?  What module failed to compile?]
        compilation succeed, after make realclean

    DOES THE PROBLEM AFFECT:
        COMPILATION? no
        LINKING? no
        EXECUTION? yes
[Please indicate whether ACE/TAO, your application, or both are affected.]
    The TAO event service is affected.

    SYNOPSIS:
[Brief description of the problem]

     With mt dispatching strategy the event service may hang, while
with reactive dispatching strategy it works.

    DESCRIPTION:
[Detailed description of problem.  Don't just say "<blah>
doesn't work, here's a fix," explain what your program does
to get to the <blah> state. ]
    I was running the TAO event service with one supplier (on host 1),
one event service (on host 2, along with the naming service), and one
consumer (on host 3). The supplier runs an infinite loop pushing the
same event type (RtecEventComm::EventSet). With the following ec.conf
it works, and the consumer can receive events:

static EC_Factory "-ECDispatching reactive -ECFiltering null
-ECSupplierFiltering null -ECProxyConsumerLock null
-ECProxySupplierLock null -ECConsumerControl reactive
-ECSupplierControl reactive -ECConsumerControlPeriod 0
-ECSupplierControlPeriod 0"

But wit the following ec.conf sometimes the event service hangs after
a few seconds of running and it stopped processing events:

static EC_Factory "-ECDispatching mt -ECDispatchingThreads 3
-ECFiltering null -ECSupplierFiltering null -ECProxyConsumerLock
thread -ECProxySupplierLock thread -ECConsumerControl reactive
-ECSupplierControl reactive -ECConsumerControlPeriod 0
-ECSupplierControlPeriod 0 -ECProxyPushSupplierCollection
mt:list:immediate -ECProxyPushConsumerCollection mt:list:immediate"

the result of the utility top showed CPU utilization returning to 0%
(was around 50% on each core); the result of the utility iftop showed
inbound network traffic returning to around 3kb (was around 280Mb).
The event service did not crash, however.

I would like to use the mt dispatching strategy, and I would like to
how to make it work.


Thank you,

Chao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/tao-users/attachments/20180209/ccce4513/attachment.html>


More information about the tao-users mailing list