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

 
 

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

Submitter:  Timi Tuohenmaa <timit>
Submitted:  Wed 10 Jul 2013 06:40:00 AM UTC
   
 
Category:  CERTI Severity:  * 4 - Important
Item Group:  Software error Status:  Fixed
Privacy:  Public Assigned to:  erk
Open/Closed:  Closed Release:  * CVS
Reproducibility:  Every Time Fixed Release:  * 3.4.2
* Mandatory Fields

Add a New Comment Rich Markup
   

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>
Group administrator
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>
Group administrator
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 Files:
   
   
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
  • -email is unavailable- added by erk (Posted a comment)
  • -email is unavailable- added by timit (Submitted the item)
  •  

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-12-06 erk Open/ClosedOpen Closed
    2013-09-04 erk StatusIn Progress Fixed
        Fixed ReleaseUnknown 3.4.2
    2013-09-04 erk StatusNone In Progress
        Assigned toNone erk
    2013-07-10 timit Attached File- Added ObjectClassSet.cc, #28526

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code