Search
j0ke.net Open Build Service
>
Projects
>
GFS
>
openais
> revision-1477.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File revision-1477.patch of Package openais (Revision 27)
Currently displaying revision
27
,
show latest
Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 1473) +++ exec/totemsrp.c (revision 1477) @@ -495,6 +495,8 @@ unsigned int my_pbl; unsigned int my_cbl; + + unsigned int operational_entered_once; }; struct message_handlers { @@ -1643,6 +1645,8 @@ instance->my_received_flg = 0; + instance->operational_entered_once = 1; + return; } @@ -2728,7 +2732,17 @@ totemip_copy(&commit_token->ring_id.rep, &instance->my_id.addr[0]); - commit_token->ring_id.seq = instance->token_ring_id_seq + 4; + /* + * The first time operational is entered, don't increment the ring + * sequence number (just reload it from stable storage). This prevents + * an error condition where if the executive is stopped and started + * before a new ring is formed, the protocol will get stuck in recovery. + */ + if (instance->operational_entered_once) { + commit_token->ring_id.seq = instance->token_ring_id_seq + 4; + } else { + commit_token->ring_id.seq = instance->token_ring_id_seq; + } /* * This qsort is necessary to ensure the commit token traverses