[bind10-dev] Error: unexpected answer from ConfigManager
zhanglikun
zlkzhy at gmail.com
Wed Mar 10 12:35:48 UTC 2010
> On 02/24/2010 04:41 PM, Jeremy C. Reed wrote:
> > After an update I went from two "unexpected answer" to only one:
> >
> > Error: unexpected answer from ConfigManager
> > {'specification_update': ['Auth', [{'item_name': 'default_name',
> > 'item_optional': False, 'item_default': 'Hello, world!', 'item_type':
> > 'string'}, {'item_name': 'zone_list', 'item_optional': False,
> > 'list_item_spec': {'item_name': 'zone_name', 'item_optional': False,
> > 'item_default': '', 'item_type': 'string'}, 'item_default': [],
> > 'item_type': 'list'}]]}
>
> Jelte wrote
> hmm, so what seems to happen is an asynchronicity problem;
>
> cmdctl starts handling a message from the queue, during which it needs
> to send a command, and it expects an answer back. But before that
> command is sent another message arrived in the queue. The code it uses
> for get the answer is the same (group_recvmsg()), so it'll get the
> second message, instead of the answer which gets added to the end.
>
> Michael? Is there a specific way it can do
> 'get-the-answer-that-was-created-with-group_reply()' or should cmdctl
> (and other modules, for that matter) hold an internal queue of
> non-answer messages that it needs to handle?
>
Hi jelte,
I think the problem will be still there, even cmdctl hold an internal queue
of non-answer messages, since cmdctl don't know which answer is it wants.
The problem should exist in any module as long as the command message isn't
processed in serial order.
So, an 'ID' is needed to add to the command message. When the answer is sent
back, the 'ID' should be copied and sent back too. Just like the query id in
dns message.
Is there some easy way to implement it? Or some other better advice?
Thanks
Zhanglikun
More information about the bind10-dev
mailing list