[Openais] Re: A bug for AMF

Steven Dake sdake at mvista.com
Mon Oct 4 14:55:29 PDT 2004


ok signal works for me as long as we can sort it out so it looks right. 
Maybe what we need is a "aisexec_debugdump_fn" added to the
servicehandler which allows every service to dump debug information :) 
I just wont let the idea go :)

thanks
-steve

On Mon, 2004-10-04 at 14:46, Miyotaka Sakai wrote:
> Steve ,
> 
> Steven Dake wrote:
> > comments inline
> > 
> > On Mon, 2004-10-04 at 09:00, Miyotaka Sakai wrote:
> > 
> >>Steve,
> >>
> >>my responses inline .
> >>
> >>
> >>Steven Dake wrote:
> >>
> >>>Miyotaka-san
> >>>comments inline
> >>>
> >>>On Sat, 2004-10-02 at 13:27, Miyotaka Sakai wrote:
> >>>
> >>>
> >>>>steve,
> >>>>
> >>>>I've found a bug for AMF and made a patch .
> >>>>I would like you to review this patch .
> >>>>
> >>>>Several gmi_mcast messages couldn't be delivered .
> >>>>I changed gmi_mcast's message priorty from GMI_PRIO_HIGH to
> >>>>GMI_PRIO_RECOVERY ,then messages could be deliverd .
> >>>>
> >>>>If you have another idea, Please tel me.
> >>>>
> >>>>This patch add several mechanisms to ease to debug .
> >>>>( a mechanism is watching AmfComponent contents )
> >>>>
> >>>
> >>>The changing of priorities needs a different solution...  I think I
> >>>messed this up for you when I added the recovery plug.  Could you fix it
> >>>up?
> >>
> >>I am sure. I will.
> >>
> >>
> >>>The way it should work is this:
> >>>messages sent during recovery (within the amf_confchg_fn function and
> >>>all the other messages related to them) should be sent at recovery
> >>>priority.  messages sent during normal operation should retain their
> >>>current priorities.  Since the state machine must now (with the recovery
> >>>plug) send messages at two different priorities depending on what state
> >>>the system is in, we need to keep track of the priorities.  It is
> >>>possible for the state machine to know the priority at which it should
> >>>send messages by placing the priority in the first message that starts
> >>>the state transitions.  Then every message that triggers a new message
> >>>to be sent should encode the priority of the message to the next state. 
> >>>If you need more details please ask.
> >>
> >>OK.
> >>I know what you mean .
> >>For exsample ,haStateSetCluster relating amf_confchg_fn uses 
> >>GMI_PRIO_RECOVERY ,but others use GMI_PRIO_HIGH.
> >>It is possible ,and I 'll fix it .
> >>
> >>
> >>>It is possible that the output queues used in gmi_mcast are full.  In
> >>>this case, it is necessary to use gmi_token_callback_create.  Mark
> >>>Haverkamp has implemented this in the event service if you need an
> >>>example of using it.  This callback will be called the next time it may
> >>>be possible to send messages.  The callback should then resend the state
> >>>machine message that failed to send on an earlier try.
> >>
> >>I refered to Mark's implementation and ,I understaned this 
> >>implementation. Please take some time to implement this .
> >>
> > 
> > 
> > cool this is a pretty hard objective but if we can get this issue fixed,
> > we will have a much more reliable system...
> > 
> > 
> >>>Why the signal stuff in main.c?
> >>
> >>I want to konw AmfComponents cotents at the time when I want to know .
> >>( I don't know when I want to know AmfComponents contens.
> >>   It is different in each debug situation. )
> >>In that case ,Most easy inmplementation is signal .
> >>If you have ,Could you tell me another idea ?
> >>
> > 
> > 
> > So when you get a SIGUSR2, you want the component state to be dumped? 
> > I'll provide some comments on the specific implementation in your patch
> > attached email...  
> > 
> > We may want an exec_exit_fn added to the service_handler structure so
> > that when ais_done is called, we can call an exit routine for all of the
> > services.  but I'm not sure if this would help if you wanted to dump
> > state at any time, not just on exit.
> 
> I want to dump AmfComponent state whenever I want .
> Not only when aisexec exit but also when a node join ,when a node leave
> ,when test program exit ,etc ,,,
> 
> In this case ,signal is easy way to do it.
> 
> >>>The added debug output looks fine.  Please try to use log_printf instead
> >>>of printf though.  Could you check in just the debug output as a
> >>>seperate commit after addressing the comment above?
> >>
> >>I'll change printf into log_print.
> >>
> >>Thanks
> >>- Miyotaka Sakai.
> >>
> >>
> >>>Thanks
> >>>-steve
> >>>
> >>>>If you accept this patch ,I'll check-in .
> >>>>Thanks !
> >>>>- Miyotaka Sakai.
> 




More information about the Openais mailing list