bugCERTI - Bugs: bug #30349, RTIA (RTIA_network.cc) does not...

 
 

bug #30349: RTIA (RTIA_network.cc) does not handle some message (NM_Register_Federation_Synchronization_Point) sent by RTIG.

Submitted by:  None
Submitted on:  Mon 05 Jul 2010 06:37:02 AM UTC  
 
Category: CERTISeverity: 6 - Security
Item Group: HLA compliance errorStatus: Ready For Test
Privacy: PublicAssigned to: Eric NOULARD <erk>
Open/Closed: OpenRelease: 3.3.3
Reproducibility: Every TimeFixed Release: 3.4.0

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 11 Nov 2010 11:12:16 AM UTC, comment #4:

This bug is fixed in 3.4.0
but I keep it open because I think we need more
"semantic" investigation of this issue.

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Mon 09 Aug 2010 02:52:00 PM UTC, comment #3:

The fix is in CVS.

Note however that I continue to think that the
usage of RFSP service by the Portico example is wrong.

Each offending federate will have his
synchronizationPointRegistrationFailed callback called.

Nevertheless RTIA shouldn't crash anymore.

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Mon 09 Aug 2010 10:22:28 AM UTC, comment #2:

Hi,

Now that I did have a closer look at this, here is the situation:

RTIA is not supposed to receive any
NM_Register_Federation_Synchronization_Point message.
However this message is sent because
the TWO federate do call
rtiamb->registerFederationSynchronizationPoint( READY_TO_RUN, "" );

as far as I understand the HLA standard (both 1.3 and 1516)
there should only be a single federate calling the service.

Other should wait for the
announceSynchronizationPoint callback
and then call
synchronizationPointAchieved.

In the Portico example both federate call registerFederationSynchronizationPoint thus the second call
fails and an exception is raised in RTIG which send back
a NM_Register_Federation_Synchronization_Point which contains the exception.

So there is 2 problems here:
A) the exception handling RTIG --> RTIA --> Federate is buggy.
B) the 2 federates call registerFederationSynchronizationPoint
(with the same label "ReadyToRun" which is wrong).

A) is a CERTI bug which must be addressed.

B) seems to be a Portico Example misuse of HLA API

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Mon 05 Jul 2010 07:03:32 AM UTC, comment #1:

Hi there,

I'll try to handle that one.

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Mon 05 Jul 2010 06:37:02 AM UTC, original submission:

RTIA (RTIA_network.cc) does not handle some message
(NM_Register_Federation_Synchronization_Point)
sent by RTIG.

This can be seen when trying to execute the Portico CPP example using two federates. The simulation crashes with the following error (RTI_EXCEPTION=X):

HLALOG - 1278078405.295837 - Federate - RTItypes.cc> RTI::Exception

> [FederationExecutionAlreadyExists,0x0] - reason= HLALOG -
> 1278078405.296061 - Federate - RTItypes.cc> RTI::Exception
> [FederationExecutionAlreadyExists,0x0] - reason=
> RTIA:: RTIA has thrown RTIinternalError exception.
> RTIA:: Reason: Unknown Message type received from RTIG.
> UN Socket(EmettreUN) : : Broken pipe
> HLALOG - 1278078405.316942 - Federate - RTItypes.cc> RTI::Exception [RTIinternalError,0x0] - reason=NetworkError in tick() while sending TICK_REQUEST: Error while sending UN message.
> terminate called after throwing an instance of 'RTI::RTIinternalError'
> RTI_EXCEPTION variable read, content = X Didn't create federation, it
> already existed Joined Federation as exampleFederate2 Handles
> initialized
>
>
> RTIA: Statistics (processed messages)
> List of federate initiated services
> --------------------------------------------------
> 1 Message::JOIN_FEDERATION_EXECUTION (MSG#4)
> 1 Message::REGISTER_FEDERATION_SYNCHRONIZATION_POINT (MSG#6)
> 1 Message::GET_OBJECT_CLASS_HANDLE (MSG#112)
> 3 Message::GET_ATTRIBUTE_HANDLE (MSG#114)
> 1 Message::GET_INTERACTION_CLASS_HANDLE (MSG#116)
> 2 Message::GET_PARAMETER_HANDLE (MSG#118)
>
> List of RTI initiated services
> --------------------------------------------------
> 1 NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT (MSG#13)
> 47 NetworkMessage::GET_FED_FILE (MSG#84)
>
> Number of Federate messages : 9
> Number of RTIG messages : 48
> *** W ** Removing temporary file _RTIA_8044_testfom.fed on RTIA stop.
> RTIA: Federate destroyed
> TCP Socket 3 : total = 3706 Bytes sent
> TCP Socket 3 : total = 5442 Bytes received
> UDP Socket 5 : total = 0 Bytes sent
> UDP Socket 5 : total = 0 Bytes received

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #20898:  example.zip added by None (7KiB - application/zip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by erk (Posted a comment)
  •  

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 6 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 11 Nov 2010 11:12:16 AM UTCerkFixed ReleaseCVS=>3.4.0
    Mon 09 Aug 2010 02:52:00 PM UTCerkStatusIn Progress=>Ready For Test
      Fixed ReleaseUnknown=>CVS
    Mon 05 Jul 2010 07:03:32 AM UTCerkStatusNone=>In Progress
      Assigned toNone=>erk
    Mon 05 Jul 2010 06:37:02 AM UTCNoneAttached File-=>Added example.zip, #20898

    Back to the top


    Powered by Savane 3.1-cleanup1