certi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-dev] REGISTER_FEDERATION_SYNCHRONIZATION_POINT


From: Yaomin Fu
Subject: [certi-dev] REGISTER_FEDERATION_SYNCHRONIZATION_POINT
Date: Fri, 13 Nov 2009 12:04:15 -0400
User-agent: Internet Messaging Program (IMP) H3 (4.0.3)

Hi,

I have recently entered the CERti world but unfortunately fall into a pitfall at
the first step. Here is the story:

I have downloaded the windows version 3.3.3 of CERti and then installed/built it
on a windows xp machine. I have coded a test driver to study how the certi
works. What I did are:

1. Open a cmd window and launched the rtig
2. Open a second window and launched the test driver. I have noticed a rtia
process is running.
3. Open a third window and launched a second instance of the test driver. It
turned out this test driver doesn't work. I have checked the process and find
there is only on rtia running.

After digging down the earth, what I have found the problem comes after calling
the Register Federation Synchronization Point service, and here is the bug
report:

behavior
When invoking "Register Federation Synchronization Point" service call for a
second federate, the service failed and kills the rtia process, disabling the
communicatiaon between the federate and rti.

cause
in rtig, upon receiving a REGISTER_FEDERATION_SYNCHRONIZATION_POINT message the
method invoking chain is:
RTIG::processIncomingMessage()->RTIG::chooseProcessimgMethod()->RTIG::processRegisterSynchronization()->FederationList::manageSynchronization()->Federation::registerSynchronization()

at the ending of the chain exception raised because of the synchronization label
already exists
upon catching the exception the begining method of the chain, it echos back to
rtia the message with the same type of the incomming message, that is
REGISTER_FEDERATION_SYNCHRONIZATION_POINT

in rtia, upon receiving the echo backed message from rtig, in the listening loop
in RTIA::execute() method, it is processed by
RTIA::execute()->RTIA::processNetworkMessage().
However, since the REGISTER_FEDERATION_SYNCHRONIZATION_POINT as a NetworkMessage
message is not handled in this method, an exception is raised to RTIA::execute()
which escalates the exception to RTIG::main(), leading to the end of the rtia
process.

To me, anyone wants to use the REGISTER_FEDERATION_SYNCHRONIZATION_POINT message
for more than one federate will encounter the problem, and wonder how comes this
bug can survive till now?

Yaomin Fu





reply via email to

[Prev in Thread] Current Thread [Next in Thread]