{"action":"created","issue":{"url":"https://api.github.com/repos/ros/roslisp_common/issues/25","labels_url":"https://api.github.com/repos/ros/roslisp_common/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/ros/roslisp_common/issues/25/comments","events_url":"https://api.github.com/repos/ros/roslisp_common/issues/25/events","html_url":"https://github.com/ros/roslisp_common/pull/25","id":65217283,"number":25,"title":"Fixes issue with goals with losing goals","user":{"login":"jannikb","id":4346527,"avatar_url":"https://avatars.githubusercontent.com/u/4346527?v=3","gravatar_id":"","url":"https://api.github.com/users/jannikb","html_url":"https://github.com/jannikb","followers_url":"https://api.github.com/users/jannikb/followers","following_url":"https://api.github.com/users/jannikb/following{/other_user}","gists_url":"https://api.github.com/users/jannikb/gists{/gist_id}","starred_url":"https://api.github.com/users/jannikb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jannikb/subscriptions","organizations_url":"https://api.github.com/users/jannikb/orgs","repos_url":"https://api.github.com/users/jannikb/repos","events_url":"https://api.github.com/users/jannikb/events{/privacy}","received_events_url":"https://api.github.com/users/jannikb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-03-30T13:53:31Z","updated_at":"2015-04-17T10:34:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ros/roslisp_common/pulls/25","html_url":"https://github.com/ros/roslisp_common/pull/25","diff_url":"https://github.com/ros/roslisp_common/pull/25.diff","patch_url":"https://github.com/ros/roslisp_common/pull/25.patch"},"body":"When executing many actions in a quick succession goals could get incorrectly marked as lost. This causes send-goal-and-wait and wait-for-return to return instantly without waiting for the goal to finish.\r\n\r\nTo replicate this issue run ```rosrun actionlib_tutorials fibonacci_server``` and in a repl\r\n```lisp\r\n(ros-load:load-system \"actionlib_lisp\" \"actionlib-test\")\r\n(in-package :actionlib-lisp)\r\n(start-ros-node \"foo\")\r\n(defparameter *client* (make-simple-action-client \"/fibonacci\" \"actionlib_tutorials/FibonacciAction\"))\r\n(let ((time (get-internal-real-time)))\r\n                  (loop for i from 0 to 100 do\r\n                    (send-goal-and-wait *client* (make-message \"actionlib_tutorials/FibonacciGoal\" order 0) 2 2)                    \r\n                    (unless (and (eql (state *client*) :SUCCEEDED)\r\n                                 (result *client*))\r\n                      (format t \"state: ~a~%\" (state *client*))\r\n                      (format t \"result: ~a~%\" (result *client*))))\r\n                  (- (get-internal-real-time) time))\r\n```"},"comment":{"url":"https://api.github.com/repos/ros/roslisp_common/issues/comments/93961526","html_url":"https://github.com/ros/roslisp_common/pull/25#issuecomment-93961526","issue_url":"https://api.github.com/repos/ros/roslisp_common/issues/25","id":93961526,"user":{"login":"airballking","id":1560050,"avatar_url":"https://avatars.githubusercontent.com/u/1560050?v=3","gravatar_id":"","url":"https://api.github.com/users/airballking","html_url":"https://github.com/airballking","followers_url":"https://api.github.com/users/airballking/followers","following_url":"https://api.github.com/users/airballking/following{/other_user}","gists_url":"https://api.github.com/users/airballking/gists{/gist_id}","starred_url":"https://api.github.com/users/airballking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airballking/subscriptions","organizations_url":"https://api.github.com/users/airballking/orgs","repos_url":"https://api.github.com/users/airballking/repos","events_url":"https://api.github.com/users/airballking/events{/privacy}","received_events_url":"https://api.github.com/users/airballking/received_events","type":"User","site_admin":false},"created_at":"2015-04-17T10:34:47Z","updated_at":"2015-04-17T10:34:47Z","body":"I realized I was not testing with the newest version of ```roslisp``` which has the fix for ```ros-time```.\r\n\r\nAfter pulling the amount of lost goals is drastically reduced. Still, I get this:\r\n\r\n```lisp\r\n(let ((time (get-internal-real-time)))\r\n  (loop for i from 0 to 5000 do\r\n    (send-goal-and-wait *client* (make-message \"actionlib_tutorials/FibonacciGoal\" order 0) 2 2)                    \r\n    (unless (and (eql (state *client*) :SUCCEEDED)\r\n                         (result *client*))\r\n      (format t \"i=~a~%\" i)\r\n      (format t \"state: ~a~%\" (state *client*))\r\n      (format t \"result: ~a~%\" (result *client*))))\r\n  (- (get-internal-real-time) time))\r\n\r\n[(ACTIONLIB) INFO] 1429266651.608: Reached execute timeout.\r\ni=899\r\nstate: LOST\r\nresult: [FIBONACCIRESULT\r\n           SEQUENCE:\r\n             #(0 1)]\r\n[(ACTIONLIB) INFO] 1429266664.448: Reached execute timeout.\r\ni=3180\r\nstate: LOST\r\nresult: [FIBONACCIRESULT\r\n           SEQUENCE:\r\n             #(0 1)]\r\n```\r\n\r\nMaybe we can look at this when we meet this afternoon?"}}