Skip to content

Commit 6a52c06

Browse files
committed
netty: fix ENHANCE_YOUR_CALM debug data logging
1 parent 641d74f commit 6a52c06

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

netty/src/main/java/io/grpc/netty/NettyClientHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ public void onGoAwayReceived(int lastStreamId, long errorCode, ByteBuf debugData
268268
if (errorCode == Http2Error.ENHANCE_YOUR_CALM.code()) {
269269
String data = new String(debugDataBytes, UTF_8);
270270
logger.log(
271-
Level.WARNING, "Received GOAWAY with ENHANCE_YOUR_CALM. Debug data: {1}", data);
271+
Level.WARNING, "Received GOAWAY with ENHANCE_YOUR_CALM. Debug data: {0}", data);
272272
if ("too_many_pings".equals(data)) {
273273
tooManyPingsRunnable.run();
274274
}

netty/src/test/java/io/grpc/netty/NettyClientHandlerTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,17 @@
8484
import io.netty.handler.codec.http2.Http2Stream;
8585
import io.netty.util.AsciiString;
8686
import java.io.InputStream;
87+
import java.text.MessageFormat;
8788
import java.util.LinkedList;
8889
import java.util.List;
8990
import java.util.Queue;
9091
import java.util.concurrent.atomic.AtomicBoolean;
92+
import java.util.concurrent.atomic.AtomicReference;
93+
import java.util.logging.Handler;
94+
import java.util.logging.LogRecord;
95+
import java.util.logging.Logger;
96+
import java.util.logging.SimpleFormatter;
97+
9198
import org.junit.Before;
9299
import org.junit.Rule;
93100
import org.junit.Test;
@@ -459,6 +466,37 @@ public void run() {
459466
assertTrue(b.get());
460467
}
461468

469+
@Test
470+
public void receivedGoAway_enhanceYourCalmShouldLogDebugData() throws Exception {
471+
final AtomicReference<LogRecord> logRef = new AtomicReference<>();
472+
Handler handler = new Handler() {
473+
@Override
474+
public void publish(LogRecord record) {
475+
logRef.set(record);
476+
}
477+
478+
@Override
479+
public void flush() {
480+
}
481+
482+
@Override
483+
public void close() throws SecurityException {
484+
}
485+
};
486+
Logger logger = Logger.getLogger(NettyClientHandler.class.getName());
487+
try {
488+
logger.addHandler(handler);
489+
enqueue(newCreateStreamCommand(grpcHeaders, streamTransportState));
490+
channelRead(goAwayFrame(0, 11 /* Enhance your calm */,
491+
Unpooled.copiedBuffer("this is a test", UTF_8)));
492+
assertNotNull(logRef);
493+
assertTrue(MessageFormat.format(logRef.get().getMessage(), logRef.get().getParameters())
494+
.contains("Debug data: this is a test"));
495+
} finally {
496+
logger.removeHandler(handler);
497+
}
498+
}
499+
462500
@Test
463501
public void cancelStreamShouldCreateAndThenFailBufferedStream() throws Exception {
464502
receiveMaxConcurrentStreams(0);

0 commit comments

Comments
 (0)