diff --git a/memberships/src/main/java/com/salesforce/apollo/membership/messaging/rbc/ReliableBroadcaster.java b/memberships/src/main/java/com/salesforce/apollo/membership/messaging/rbc/ReliableBroadcaster.java index 45ee2038f..d3d653fad 100644 --- a/memberships/src/main/java/com/salesforce/apollo/membership/messaging/rbc/ReliableBroadcaster.java +++ b/memberships/src/main/java/com/salesforce/apollo/membership/messaging/rbc/ReliableBroadcaster.java @@ -200,7 +200,7 @@ private void deliver(List newMsgs) { if (newMsgs.isEmpty()) { return; } - log.debug("delivering: {} on: {}", newMsgs.size(), member.getId()); + log.trace("delivering: {} on: {}", newMsgs.size(), member.getId()); channelHandlers.values().forEach(handler -> { try { handler.message(context.getId(), newMsgs); @@ -229,14 +229,11 @@ private Reconcile gossipRound(ReliableBroadcast link, int ring) { private void handle(Optional result, RingCommunications.Destination destination, Duration duration, ScheduledExecutorService scheduler, Timer.Context timer) { + if (result.isEmpty()) { + return; + } try { - Reconcile gossip; - try { - gossip = result.get(); - } catch (NoSuchElementException e) { - log.debug("null gossiping with {} on: {}", destination.member().getId(), member.getId(), e.getCause()); - return; - } + Reconcile gossip = result.get(); buffer.receive(gossip.getUpdatesList()); destination.link() .update(ReconcileContext.newBuilder() diff --git a/memberships/src/test/java/com/salesforce/apollo/membership/messaging/RbcTest.java b/memberships/src/test/java/com/salesforce/apollo/membership/messaging/RbcTest.java index 22a53854a..b4b857097 100644 --- a/memberships/src/test/java/com/salesforce/apollo/membership/messaging/RbcTest.java +++ b/memberships/src/test/java/com/salesforce/apollo/membership/messaging/RbcTest.java @@ -108,10 +108,8 @@ public void broadcast() throws Exception { } int rounds = Boolean.getBoolean("large_tests") ? 100 : 10; for (int r = 0; r < rounds; r++) { - CountDownLatch round = new CountDownLatch(messengers.size()); - for (Receiver receiver : receivers.values()) { - receiver.setRound(round); - } + CountDownLatch latch = new CountDownLatch(messengers.size()); + round.set(latch); var rnd = r; messengers.stream().forEach(view -> { byte[] rand = new byte[32]; @@ -122,8 +120,8 @@ public void broadcast() throws Exception { buf.flip(); view.publish(ByteMessage.newBuilder().setContents(ByteString.copyFrom(buf)).build(), true); }); - boolean success = round.await(60, TimeUnit.SECONDS); - assertTrue(success, "Did not complete round: " + r + " waiting for: " + round.getCount()); + boolean success = latch.await(60, TimeUnit.SECONDS); + assertTrue(success, "Did not complete round: " + r + " waiting for: " + latch.getCount()); current.incrementAndGet(); for (Receiver receiver : receivers.values()) { @@ -140,12 +138,12 @@ public void broadcast() throws Exception { .build() .report(); } + final AtomicReference round = new AtomicReference<>(); class Receiver implements MessageHandler { final Set counted = Collections.newSetFromMap(new ConcurrentHashMap<>()); final AtomicInteger current; final Digest memberId; - final AtomicReference round = new AtomicReference<>(); Receiver(Digest memberId, int cardinality, AtomicInteger current) { this.current = current; @@ -181,10 +179,6 @@ public void message(Digest context, List messages) { }); } - public void setRound(CountDownLatch round) { - this.round.set(round); - } - void reset() { counted.clear(); } diff --git a/memberships/src/test/resources/logback-test.xml b/memberships/src/test/resources/logback-test.xml index 173ca38f1..dfac01527 100644 --- a/memberships/src/test/resources/logback-test.xml +++ b/memberships/src/test/resources/logback-test.xml @@ -18,7 +18,7 @@ - +