diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
index 605ca68..a6322d2 100644
--- a/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
+++ b/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
@@ -70,6 +70,7 @@
 import okio.Okio;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TestRule;
@@ -1640,7 +1641,9 @@
     return new InetSocketAddress(address.getAddress(), nullServer.getLocalPort());
   }
 
-  @Test public void cancelTagImmediatelyAfterEnqueue() throws Exception {
+  @Test
+  @Ignore("TODO(b/333847678 - diagnose and fix flake")
+  public void cancelTagImmediatelyAfterEnqueue() throws Exception {
     server.enqueue(new MockResponse());
     Call call = client.newCall(new Request.Builder()
         .url(server.url("/a"))
diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/URLConnectionTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/URLConnectionTest.java
index 1976523..aa0b5c2 100644
--- a/okhttp-tests/src/test/java/com/squareup/okhttp/URLConnectionTest.java
+++ b/okhttp-tests/src/test/java/com/squareup/okhttp/URLConnectionTest.java
@@ -408,7 +408,9 @@
     testServerClosesOutput(SHUTDOWN_INPUT_AT_END);
   }
 
-  @Test public void serverShutdownOutput() throws Exception {
+  @Test
+  @Ignore("TODO(b/333847678 - diagnose and fix flake")
+  public void serverShutdownOutput() throws Exception {
     testServerClosesOutput(SHUTDOWN_OUTPUT_AT_END);
   }
 
diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/internal/framed/Http2ConnectionTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/internal/framed/Http2ConnectionTest.java
index 607b0b5..ee7f94a 100644
--- a/okhttp-tests/src/test/java/com/squareup/okhttp/internal/framed/Http2ConnectionTest.java
+++ b/okhttp-tests/src/test/java/com/squareup/okhttp/internal/framed/Http2ConnectionTest.java
@@ -28,6 +28,7 @@
 import okio.Okio;
 import okio.Source;
 import org.junit.After;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import static com.squareup.okhttp.TestUtil.headerEntries;
@@ -96,7 +97,9 @@
     }
   }
 
-  @Test public void peerHttp2ServerLowersInitialWindowSize() throws Exception {
+  @Test
+  @Ignore("TODO(b/333847678 - diagnose and fix flake")
+  public void peerHttp2ServerLowersInitialWindowSize() throws Exception {
     try (MockSpdyPeer peer = new MockSpdyPeer()) {
       peer.setVariantAndClient(HTTP_2, false);
 
