Explorar el Código

Log auto-recovery of ring only once

Make sure to log auto-recovery of ring only once. Every
MESSAGE_TYPE_RING_TEST_ACTIVATE receive is logged, but with lower
priority and more detailed information.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
Jan Friesse hace 11 años
padre
commit
e0ac861efd
Se han modificado 1 ficheros con 11 adiciones y 3 borrados
  1. 11 3
      exec/totemrrp.c

+ 11 - 3
exec/totemrrp.c

@@ -1910,15 +1910,23 @@ void rrp_deliver_fn (
 		}
 	} else 
 	if (hdr->type == MESSAGE_TYPE_RING_TEST_ACTIVATE) {
-		log_printf (
-			rrp_instance->totemrrp_log_level_notice,
-			"Automatically recovered ring %d", hdr->ring_number);
 
 		if (hdr->endian_detector != ENDIAN_LOCAL) {
 			test_active_msg_endian_convert(hdr, &tmp_msg);
 			hdr = &tmp_msg;
 		}
 
+		log_printf (
+			rrp_instance->totemrrp_log_level_debug,
+			"Received ring test activate message for ring %d sent by node %u",
+			hdr->ring_number,
+			hdr->nodeid_activator);
+
+		if (rrp_instance->stats.faulty[deliver_fn_context->iface_no]) {
+			log_printf (rrp_instance->totemrrp_log_level_notice,
+			    "Automatically recovered ring %d", hdr->ring_number);
+		}
+
 		totemrrp_ring_reenable (rrp_instance, deliver_fn_context->iface_no);
 		if (hdr->nodeid_activator != rrp_instance->my_nodeid) {
 			totemnet_token_send (