merge bug26084 into stable
enforce gm GROUP_TABLE abstraction
...by using mnesia:write/3 instead of /1
and generally abstract mnesia reading/writing and make it dirty reads
obvious.
simplify: get rid of tmp var
refactor: tweak and push through gm read_group abstraction
make gm record_new_member_in_group tx side effect free
cosmetic: consistency
refactor: extract gm view change handling
maintain gm ?GROUP_TABLE abstraction
in yet another place
don't erase aliases quite so eagerly on DOWN
since that can result in completely forgetting about a member when
there are still acks making their way around the right.
merge bug26119 into stable
merge stable into bug26084
blank members_state before maybe_erase_aliases
thus reverting b01e5808866d

We are the only member left. So our usual alias erasure condition of
"acks = pubs" needs to go since otherwise erasure could be deferred
indefintely, waiting for acks to arrive that never will. Blanking the
members_state effectively sets acks = pubs for all aliases, thus
enabling their unconditional erasure.