On Thu, 2010-02-04 at 14:33 +0530, S G, Roopesh wrote: > Hi, > > > > After going through Corosync architecture, I understand that > TOTEM srp protocol is used by Corosync for heart beating mechanism. > But I am trying to understand how the node failure/ token lost is > notified to the corosync services (which rely on TOTEM for failure > events) by the TOTEM protocol. Is it via deliver_fn callback? Or is > it via the IPC infrastructure? >
When a token is lost, all nodes communicating via totem form a new configuration. This is called the "gather" state. After gather, totem enters recovery, then operational. Once totem enters operational, it delivers a configuration change via the confchg_fn registered in totemsrp_initialize. (totemsrp.c:761) At the top level, this is delivered via app_confchg_fn to the corosync executive. (totempg.c:352). For service engines, these callbacks are registered via totempg_groups_initialize (main.c:1472). This registers "confchg_fn" which is defined in main.c to call every service engine's confchg_fn (main.c:353). There is also a synchronization service which separately does a totempg_groups_initialize in sync.c and syncv2.c for delivery of confchg messages to the synchronization engine. For applications using cpg, the service/cpg.c's sync_init is called which provides it with information to notify cpg clients of node status changes. This notification occurs via ipc to the client library in lib/cpg.c Have a look over that and see if that flow makes a little more sense. You will probably have more questions after investigating those line numbers. Regards -steve > > Thanks > > Roopesh > > > _______________________________________________ > Openais mailing list > [email protected] > https://lists.linux-foundation.org/mailman/listinfo/openais _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
