Re: [ros-users] dynamic_reconfigure in cturtle stuck

Forside
Vedhæftede filer:
Indlæg som e-mail
+ (text/plain)
Slet denne besked
Besvar denne besked
Skribent: User discussions
Dato:  
Til: User discussions
Emne: Re: [ros-users] dynamic_reconfigure in cturtle stuck
On Mon, Jan 17, 2011 at 5:28 PM, Tomas Vanderka
<> wrote:
> On 01/17/2011 08:36 PM, Blaise Gassend wrote:
>>>
>>> I somehow got dynparam get ... to work once, but i'm not sure what i
>>> did, next time i tried it, it got stuck as usual. I tried to run
>>> gdb/strace on it and it looks deadlocked waiting on semaphore. I also
>>> looked through logs and it seems dead just before subscribing to
>>> /dynamic_reconfigure_test_server/parameter_updates. Maybe python2.7 in
>>> fedora 14 has something to do with that? The client never gets
>>> subscribed>  never gets parameter_updates msg>  waits forever. Any
>>> suggestions how I can debug it further?
>>
>> Can you try with python 2.6?
>>
>> Do other python nodes work well?
>>
>> Have you inserted prints in the dynamic reconfigure client code to try
>> to figure out where it is getting stuck?
>
> My point is getting it working under fedora 14 so python-2.7 is a given.
>
> I was playing around a bit with simple python pub/sub examples and it looks
> like it is some kind of a race condition between multiple succeeding
> subscriptions under same nodehandle/prefix like /a/chatter1, /a/chatter2. It
> is not limited to dynamic_reconfigure.
>
> It happens with both cpp and python publishers but only with a python
> subscriber. c++ subscriber always works fine.
>
> I modified src/dynamic_reconfigure/client.py like this
>         self._updates_sub      =
> self._get_subscriber('parameter_updates',...
> +        rospy.sleep(1)
>         self._descriptions_sub =
> self._get_subscriber('parameter_descriptions',...
>
> and now it works.
>
> I tested it with talker/listener tutorials modified with attached patch, and
> it randomly works ok, only with one topic or not at all.


What's the reproducible steps for this? I ran the talker.py and
restarted the listener.py and it always printed both subscribers. I'm
on Python 2.6, so that trends towards this being a Python 2.7 issue
(or something else on your setup), but I want to make sure that I
understand the intent of the test.

- Ken