certi-devel
[Top][All Lists]
Advanced

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

Re: [certi-dev] REGISTER_FEDERATION_SYNCHRONIZATION_POINT


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

Thanks, Erk, for your reply.

The test code purposely calls the "Register Federation Synchronization Point"
service multiple times and expects to receive an exception or failed code.

I have tried the link in your email but again got an "Exception" of viewing.

Yaomin

Quoting Eric Noulard <address@hidden>:

2009/11/13 Yaomin Fu <address@hidden>:
Hi,

Hi Yaomin,

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

I have downloaded the windows version 3.3.3 of CERti and then installed/b=
uilt it
on a windows xp machine. I have coded a test driver to study how the cert=
i
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 rt=
ia
process is running.
When invoking "Register Federation Synchronization Point" service call fo=
r a
second federate, the service failed and kills the rtia process, disabling=
the
communicatiaon between the federate and rti.

This is an error, the
"Register Federation Synchronization Point" should only be called by a SING=
LE
federate. Then all federate will receive RTI  "Announce
Synchronization Point" callback.

cause
in rtig, upon receiving a REGISTER_FEDERATION_SYNCHRONIZATION_POINT messa=
ge the
method invoking chain is:
RTIG::processIncomingMessage()->RTIG::chooseProcessimgMethod()->RTIG::pro=
cessRegisterSynchronization()->FederationList::manageSynchronization()->Fed=
eration::registerSynchronization()

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

This path seems correct, it's the way error occuring on RTIg side goes
back to RTIA and
then Federate....

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

This is a real bug.
Would you be kind enough to file a bug report to
https://savannah.nongnu.org/bugs/?group=3Dcerti

(do not forget to register+login into Savannah [it's free] in order
have automatic follow-up)

To me, anyone wants to use the REGISTER_FEDERATION_SYNCHRONIZATION_POINT =
message
for more than one federate will encounter the problem,

Nope because the error is raised because you misuse the corresponding
HLA service.
You may have a look at
http://cvs.savannah.gnu.org/viewvc/applications/HLA_TestsSuite/test_Sync.cc=
?root=3Dcerti&view=3Dmarkup
which is an hopefully correct example of synchronization point usage.

and wonder how comes this bug can survive till now?

May be because our test suite is not good enough :-)
For sure CERTI is "research" project so robust error handling wasn't a prio=
rity,
but for sure we will fix this (or integrate appropriate patch proposal).

The more bug report we have the less bugs will remain in next release.

Thank you very much for your report.


--=20
Erk
Membre de l'April - =AB promouvoir et d=E9fendre le logiciel libre =BB -
http://www.april.org


--
CERTI-Devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/certi-devel









reply via email to

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