aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar brendandouglas <brendandouglas@google.com>2018-06-11 10:29:34 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-11 10:30:56 -0700
commit4ee15b8182c9728855914ce174bd933698000d9b (patch)
treef5c15445d93ad75ed11e37df5e491bd48771e12a
parent8df3747348989b82d7e360dc202da2fcbcd4f8cb (diff)
Add some more logging to the debug server.
Mostly 'debug' level logs that won't appear by default. PiperOrigin-RevId: 200072597
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkdebug/module/SkylarkDebuggerOptions.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransport.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServer.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransportTest.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java20
5 files changed, 47 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/SkylarkDebuggerOptions.java b/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/SkylarkDebuggerOptions.java
index 831a7770c6..3164843f3f 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/SkylarkDebuggerOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/module/SkylarkDebuggerOptions.java
@@ -36,7 +36,6 @@ public final class SkylarkDebuggerOptions extends OptionsBase {
@Option(
name = "experimental_debug_server_port",
defaultValue = "7300",
- category = "server startup",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.EXECUTION},
metadataTags = {OptionMetadataTag.EXPERIMENTAL},
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransport.java b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransport.java
index a1696e368a..34b2f3abec 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransport.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransport.java
@@ -37,6 +37,7 @@ final class DebugServerTransport {
// TODO(bazel-team): reject all connections after the first
eventHandler.handle(Event.progress("Waiting for debugger..."));
Socket clientSocket = serverSocket.accept();
+ eventHandler.handle(Event.info("Debugger connection successfully established."));
return new DebugServerTransport(
eventHandler,
serverSocket,
@@ -72,7 +73,9 @@ final class DebugServerTransport {
DebugRequest readClientRequest() {
synchronized (requestStream) {
try {
- return DebugRequest.parseDelimitedFrom(requestStream);
+ DebugRequest request = DebugRequest.parseDelimitedFrom(requestStream);
+ eventHandler.handle(Event.debug("Received debug client request:\n" + request));
+ return request;
} catch (IOException e) {
handleParsingError(e);
return null;
@@ -92,6 +95,7 @@ final class DebugServerTransport {
/** Posts a debug event. */
void postEvent(DebugEvent event) {
+ eventHandler.handle(Event.debug("Sending debug event:\n" + event));
synchronized (eventStream) {
try {
event.writeDelimitedTo(eventStream);
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServer.java b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServer.java
index 00af706a47..02bc164fd2 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServer.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServer.java
@@ -104,6 +104,10 @@ public final class SkylarkDebugServer implements DebugServer {
+ Throwables.getStackTraceAsString(e)));
}
} finally {
+ eventHandler.handle(
+ Event.info(
+ "Debug server listener thread closed; shutting down debug server and "
+ + "resuming all threads"));
close();
}
});
@@ -115,6 +119,7 @@ public final class SkylarkDebugServer implements DebugServer {
@Override
public void close() {
try {
+ eventHandler.handle(Event.debug("Closing debug server"));
transport.close();
} catch (IOException e) {
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransportTest.java b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransportTest.java
index c2b6b4e414..fedf56f690 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransportTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/DebugServerTransportTest.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.skylarkdebugging.SkylarkDebuggingProtos.Con
import com.google.devtools.build.lib.skylarkdebugging.SkylarkDebuggingProtos.DebugEvent;
import com.google.devtools.build.lib.skylarkdebugging.SkylarkDebuggingProtos.DebugRequest;
import com.google.devtools.build.lib.skylarkdebugging.SkylarkDebuggingProtos.StartDebuggingRequest;
+import com.google.devtools.build.lib.syntax.Environment.FailFastException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
@@ -29,6 +30,7 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.time.Duration;
import java.util.ArrayList;
+import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -84,8 +86,21 @@ public class DebugServerTransportTest {
}
@Before
- public void setup() {
- events.setFailFast(true);
+ public void setupEventHandler() {
+ // fail-fast treats 'debug' messages as errors. Replace with something that doesn't
+ events.setFailFast(false);
+
+ EnumSet<EventKind> failOnEvents = EnumSet.copyOf(EventKind.ERRORS_AND_WARNINGS);
+ failOnEvents.remove(EventKind.DEBUG);
+
+ events
+ .reporter()
+ .addHandler(
+ event -> {
+ if (failOnEvents.contains(event.getKind())) {
+ throw new FailFastException(event.toString());
+ }
+ });
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
index 8aea1889d7..15fce4ba08 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
@@ -39,6 +39,7 @@ import com.google.devtools.build.lib.skylarkdebugging.SkylarkDebuggingProtos.Ste
import com.google.devtools.build.lib.syntax.BuildFileAST;
import com.google.devtools.build.lib.syntax.DebugServerUtils;
import com.google.devtools.build.lib.syntax.Environment;
+import com.google.devtools.build.lib.syntax.Environment.FailFastException;
import com.google.devtools.build.lib.syntax.Mutability;
import com.google.devtools.build.lib.syntax.ParserInputSource;
import com.google.devtools.build.lib.syntax.SkylarkList;
@@ -49,6 +50,7 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.time.Duration;
+import java.util.EnumSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -85,6 +87,24 @@ public class SkylarkDebugServerTest {
DebugServerUtils.initializeDebugServer(server);
}
+ @Before
+ public void setupEventHandler() {
+ // fail-fast treats 'debug' messages as errors. Replace with something that doesn't
+ events.setFailFast(false);
+
+ EnumSet<EventKind> failOnEvents = EnumSet.copyOf(EventKind.ERRORS_AND_WARNINGS);
+ failOnEvents.remove(EventKind.DEBUG);
+
+ events
+ .reporter()
+ .addHandler(
+ event -> {
+ if (failOnEvents.contains(event.getKind())) {
+ throw new FailFastException(event.toString());
+ }
+ });
+ }
+
@After
public void shutDown() throws Exception {
if (client != null) {