bugCERTI - Bugs: bug #39456, Recovery after crashed federate...

 
 

bug #39456: Recovery after crashed federate that owns multiple objects

Submitted by:  Timi Tuohenmaa <timit>
Submitted on:  Wed 10 Jul 2013 06:40:00 AM UTC  
 
Category: CERTISeverity: 4 - Important
Item Group: Software errorStatus: Fixed
Privacy: PublicAssigned to: Eric NOULARD <erk>
Open/Closed: ClosedRelease: CVS
Reproducibility: Every TimeFixed Release: 3.4.2

Add a New Comment(Rich Markup)
   

You are not logged in

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

 

Fri 06 Sep 2013 08:03:20 AM UTC, comment #3:

We have just right now situation where I can't test it, but did read it very carefully and it looks like it does exactly the same thing as my patch proposal.

We also did other small patch where we added one exception catch to specific place to make it work in unexpected crash, but unfortunatelly I haven't had time to make make it as bug report and patch (not sure if it is completely correct way to handle that situation). If 3.4.2 is needed to be released very soon then that issue will need to wait.

When I have some more time I might try to find few other fixes too (I will use certi-dev, to ask for help then).

Timi Tuohenmaa <timit>
Wed 04 Sep 2013 12:54:59 PM UTC, comment #2:

Fixed now in CVS HEAD.

I did commit a slightly updated patch with some more comments.
Thank you for the report and the patch proposal.

Please test CVS HEAD in order to check whether if it is OK on your side as well, before I release 3.4.2.

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Wed 04 Sep 2013 08:05:25 AM UTC, comment #1:

Thank you for the report, the analysis and the patch.
I'm looking into it right now.

Eric NOULARD <erk>
Project AdministratorIn charge of this item.
Wed 10 Jul 2013 06:40:00 AM UTC, original submission:

In current CVS and 3.4.1 version RTIG does not clean up federates correctly that owns multiple objects for a single (non-root) object class.

It only removes first object and then breaks the whole object class list from RTIG.

This can be reproduced by creating a federate that creates multiple objects for one objectclass and then crashing it and trying to restart it (with same federate name).

Problem lies in ObjectClassSet.cc killFederate() function. It breaks the map by setting data through iterator instead of using temporary pointers.

Fix would be put ObjectClass* received from getObjectFromHandle to temporary variable instead of i->second.

I attached a fixed version of ObjectClassSet.cc (edited from 3.4.1 release).

With this fix I can crash federates and then restart them without any problems.

Timi Tuohenmaa <timit>

 

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

Attach File(s):
   
   
Comment:
   

Attached Files
file #28526:  ObjectClassSet.cc added by timit (22KiB - text/x-c++src)

 

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)
  • -unavailable- added by timit (Submitted the item)
  •  

    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
    Fri 06 Dec 2013 12:17:10 PM UTCerkOpen/ClosedOpen=>Closed
    Wed 04 Sep 2013 12:54:59 PM UTCerkStatusIn Progress=>Fixed
      Fixed ReleaseUnknown=>3.4.2
    Wed 04 Sep 2013 08:05:25 AM UTCerkStatusNone=>In Progress
      Assigned toNone=>erk
    Wed 10 Jul 2013 06:40:00 AM UTCtimitAttached File-=>Added ObjectClassSet.cc, #28526

    Back to the top


    Powered by Savane 3.1-cleanup1