Repository: aurora Updated Branches: refs/heads/master f6c40a279 -> fb64e3a9f
Suppress multiline logging from mesos callbacks Reviewed at https://reviews.apache.org/r/63383/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/fb64e3a9 Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/fb64e3a9 Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/fb64e3a9 Branch: refs/heads/master Commit: fb64e3a9ffac224fc008298a30b6f1213edce525 Parents: f6c40a2 Author: Bill Farner <[email protected]> Authored: Fri Oct 27 17:26:34 2017 -0700 Committer: Bill Farner <[email protected]> Committed: Fri Oct 27 17:26:34 2017 -0700 ---------------------------------------------------------------------- .../scheduler/mesos/MesosCallbackHandler.java | 12 ++++++--- .../mesos/MesosCallbackHandlerTest.java | 28 ++++++++++++++++++-- 2 files changed, 35 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/fb64e3a9/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java index e93c4fa..fd5874d 100644 --- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java +++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java @@ -298,7 +298,11 @@ public interface MesosCallbackHandler { message.append(" with ").append(status.getReason()); } if (status.hasMessage()) { - message.append(": ").append(status.getMessage()); + String[] lines = status.getMessage().split("\n"); + message.append(": ").append(lines[0]); + if (lines.length > 1) { + message.append(" (truncated)"); + } } if (debugLevel) { logger.debug(message.toString()); @@ -335,7 +339,7 @@ public interface MesosCallbackHandler { @Override public void handleLostAgent(AgentID agentId) { - log.info("Received notification of lost agent: " + agentId); + log.info("Received notification of lost agent: " + agentId.getValue()); slavesLost.incrementAndGet(); } @@ -344,7 +348,9 @@ public interface MesosCallbackHandler { // With the current implementation of MESOS-313, Mesos is also reporting clean terminations of // custom executors via the executorLost callback. if (status != 0) { - log.warn("Lost executor " + executorID + " on slave " + slaveID + " with status " + status); + log.warn("Lost executor " + executorID.getValue() + + " on slave " + slaveID.getValue() + + " with status " + status); executorsLost.incrementAndGet(); } } http://git-wip-us.apache.org/repos/asf/aurora/blob/fb64e3a9/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java index 51d0371..8f8b86d 100644 --- a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java +++ b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java @@ -49,6 +49,7 @@ import org.slf4j.LoggerFactory; import static org.apache.aurora.gen.MaintenanceMode.DRAINING; import static org.apache.aurora.gen.MaintenanceMode.NONE; +import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; import static org.easymock.EasyMock.replay; @@ -217,7 +218,6 @@ public class MesosCallbackHandlerTest extends EasyMockTest { storageUtil.expectOperations(); storageUtil.schedulerStore.saveFrameworkId(FRAMEWORK_ID); - expectLastCall(); registeredEventSink.post(new PubsubEvent.DriverRegistered()); @@ -465,7 +465,6 @@ public class MesosCallbackHandlerTest extends EasyMockTest { + "SOURCE_AGENT with REASON_RECONCILIATION: message"; injectedLog.debug(expectedMsg); - expectLastCall().once(); eventSink.post(new PubsubEvent.TaskStatusReceived( STATUS_RECONCILIATION.getState(), @@ -483,6 +482,31 @@ public class MesosCallbackHandlerTest extends EasyMockTest { } @Test + public void testNoMultilineLogging() { + createHandler(true); + + injectedLog.info("Received status update for task task-id in state " + + "TASK_RUNNING from SOURCE_AGENT: A (truncated)"); + injectedLog.info("Received status update for task task-id in state " + + "TASK_RUNNING from SOURCE_AGENT: A string with one line"); + eventSink.post(anyObject()); + expectLastCall().anyTimes(); + statusHandler.statusUpdate(anyObject()); + expectLastCall().anyTimes(); + + control.replay(); + + handler.handleUpdate(STATUS_NO_REASON + .toBuilder() + .setMessage("A\nstring\nwith\nmany\nlines") + .build()); + handler.handleUpdate(STATUS_NO_REASON + .toBuilder() + .setMessage("A string with one line") + .build()); + } + + @Test public void testLostAgent() { control.replay();
