[Linux-cluster] F_SETLK fails after recovery
Neale Ferguson
neale at sinenomine.net
Tue Sep 2 15:24:19 UTC 2014
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 <rpeterso at redhat.com> 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?
More information about the Linux-cluster
mailing list