ken@gvax.cs.cornell.edu (Ken Birman) (08/04/89)
Two "features" that will be eliminated in future ISIS releases (meanwhile, being aware of them should be enough to avoid problems) 1) In private mail, Jim Muldner asks "... what can I assume, if anything, about what a process will see between when it invokes pg_leave and when the pg_leave returns? I think I have seen a race condition between a process doing a pg_join and one doing a pg_leave in which the pg_join causes a state transfer WHILE the pg_leave is running! Is this normal?" KB: I looked into this, and indeed the system treats a process as a full-fledged member of a process group until the GBCAST that pg_leave sends is delivered to the other members -- possibly a long delay after pg_leave is first initiated. Thus, a process trying to leave could continue to receive requests and could even be asked to do a state transfer to other members! We are modifying the system to allow a process that doesn't want to participate in a state transfer to call ``cc_refuse()'' in the state-xfer out routine (or, in general, in the action routine of any coordinator- cohort algorithm). However, it is not possible to arrange for a process to drop out of a group at the instant it calls pg_leave -- this leads to non virtually synchronous executions and can cause many things to break. You'll just have to program with this in mind. 2) Also in private mail, Mark Wood asks "... is it possible that when a group has multiple clients monitoring group membership and the last member drops out, that gv_departed is not set correctly on the last group view reported to the clients (the one with nmembs == 0)?" KB: Mark is right. We'll fix this so that if a group has 1 member who exits, the last view shows the address of this member in gv_departed. Currently, gv_departed is meaningless if gv_nmemb==0 Note that if the group terminates by a pg_delete, several members could drop out simultaneously. In this case, I'll make sure that gv_departed contains NULLADDRESS. (We could also pass in multiple "fake" views in this case, if anyone wants to make a strong argument in favor of this.)