if (r->owner != 0) {
- /* shouldn't happen */
- log_error("receive_drop from %d r %llx owner %d", from,
+ /* - A sent drop, B sent drop, receive drop A, C sent own,
+ receive drop B (this warning on C, owner -1)
+ - A sent drop, B sent drop, receive drop A, A sent own,
+ receive own A, receive drop B (this warning on all,
+ owner A) */
+ log_debug("receive_drop from %d r %llx owner %d", from,
(unsigned long long)r->number, r->owner);
return;
}
--- cluster/group/gfs_controld/plock.c 2007/11/29 21:27:58 1.35
+++ cluster/group/gfs_controld/plock.c 2007/11/30 16:20:55 1.36
@@ -971,6 +971,9 @@
- A sends drop, B sends plock, receive drop, receive plock.
This is addressed above.
+ - A sends drop, B sends plock, receive drop, B reads plock
+ and sends own, receive plock, on B we find owner of -1.
+
- A sends drop, B sends two plocks, receive drop, receive plocks.
Receiving the first plock is the previous case, receiving the
second plock will find r with owner of -1.
@@ -983,23 +986,29 @@
last case below; receiving a plock from ourself and finding
we're the owner of r. */
- /* may want to supress this if some of them are common enough */
- if (r->owner)
- log_error("receive_plock from %d r %llx owner %d", from,
- (unsigned long long)info.number, r->owner);
-
if (!r->owner) {
__receive_plock(mg, &info, from, r);
} else if (r->owner == -1) {
+ log_debug("receive_plock from %d r %llx owner %d", from,
+ (unsigned long long)info.number, r->owner);
+
if (from == our_nodeid)
save_pending_plock(mg, r, &info);
} else if (r->owner != our_nodeid) {
+ /* might happen, if frequent change to log_debug */
+ log_error("receive_plock from %d r %llx owner %d", from,
+ (unsigned long long)info.number, r->owner);
+
if (from == our_nodeid)
save_pending_plock(mg, r, &info);
} else if (r->owner == our_nodeid) {
+ /* might happen, if frequent change to log_debug */
+ log_error("receive_plock from %d r %llx owner %d", from,
+ (unsigned long long)info.number, r->owner);
+
if (from == our_nodeid)
__receive_plock(mg, &info, from, r);
}
Fix an alignment problem with ppc64. Things work if we do the
byte-swapping on the original structure and then copy it into the
final buffer, instead of copying first and then trying to do the
byte-swapping at an offset within the send buffer.
Fix an alignment problem with ppc64. Things work if we do the
byte-swapping on the original structure and then copy it into the
final buffer, instead of copying first and then trying to do the
byte-swapping at an offset within the send buffer.
Fix an alignment problem with ppc64. Things work if we do the
byte-swapping on the original structure and then copy it into the
final buffer, instead of copying first and then trying to do the
byte-swapping at an offset within the send buffer.