Forget the snippet of code in my original posting as the code in 3.0.12-60
actually looks like this:
if (nodes_added(ls)) {
store_plocks(ls, &sig);
ls->last_plock_sig = sig;
} else {
sig = ls->last_plock_sig;
}
send_plocks_stored(ls, sig);
So sig is never uninitialized. However, the question still remains - node 2
disables plocks for node 1. How are the supposed to be re-enabled?
Neale
On Sep 2, 2014, at 11:04 AM, Bob Peterson <[email protected]> wrote:
> ----- Original Message -----
>>
>> Looking at the cpg.c:
>>
>> static void prepare_plocks(struct lockspace *ls)
>> {
>>
>> struct change *cg = list_first_entry(&ls->changes, struct change, list);
>>
>> struct member *memb;
>> uint32_t sig;
>>
>> :
>> :
>> :
>> if (nodes_added(ls))
>> store_plocks(ls, &sig);
>> send_plocks_stored(ls, sig);
>> }
>>
>> If nodes_added(ls) returns false then an uninitialized "sig" value will be
>> passed to send_plocks_stored(). Do the "our sig" and "sig" values in the
>> above log messages make sense?
>>
>> If this is not the case, what is supposed to happen in order re-enable plocks
>> on the recovered node?
--
Linux-cluster mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/linux-cluster