yekigoc / rosjava

Automatically exported from code.google.com/p/rosjava
0 stars 0 forks source link

Actionlib goal statuses are not cleaned up upon completion/cancellation #30

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run a SimpleActionServer performing any task.
2. Submit a number of goals.
3. rostopic echo /status

What is the expected output? What do you see instead?

The /status topic should keep the statuses of the last few goals for 5 seconds, 
then remove them.  Instead, goal statuses for every goal ever submitted are 
broadcast indefinitely.  Eventually, this leads to a BufferOverflowException in 
the /status publisher during serialization.

What version of the product are you using? On what operating system?

Latest version of rosjava trunk.

Please provide any additional information below.

The problem is caused by DefaultSimpleActionServer not cancelling status 
updates when goals reach their terminal states. Adding 
currentGoal.cancelStatusUpdates() to setSucceeded(), setCancelled(), and 
setPreempted() seems to produce the intended behavior.  

A patch containing the proposed change is attached.

Original issue reported on code.google.com by psi...@gmail.com on 1 Sep 2011 at 10:15

Attachments:

GoogleCodeExporter commented 9 years ago
actionlib will be re-implemented in the future. The existing version will not 
be maintained.

Original comment by damonkoh...@google.com on 26 Apr 2012 at 10:57