2017-10-10 2 views
0

Sous Windows seulement, j'ai un serveur GRPC qui jette cette pile de niveau INFO trace chaque seconde:Pourquoi gRPC lance-t-il une «connexion établie interrompue par le logiciel de votre machine hôte» toutes les secondes sur Windows uniquement?

2017-10-09T20:11:00,366 - INFO - [grpc-default-worker-ELG-1-13:io.grpc.netty.NettyServerTransport:[email protected]] - {} - Transport failed 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:1.8.0_131] 
    at sun.nio.ch.SocketDispatcher.read(Unknown Source) ~[?:1.8.0_131] 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) ~[?:1.8.0_131] 
    at sun.nio.ch.IOUtil.read(Unknown Source) ~[?:1.8.0_131] 
    at sun.nio.ch.SocketChannelImpl.read(Unknown Source) ~[?:1.8.0_131] 
    at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288) ~[ ] 
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1106) ~[netty-buffer-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372) ~[netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) [netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) [netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) [netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) [netty-transport-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.14.Final.jar:4.1.14.Final] 
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) [netty-common-4.1.14.Final.jar:4.1.14.Final] 
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_131] 

Cela peut être la même chose connecté https://github.com/grpc/grpc-java/issues/1768

Encore une fois, je reçois ce erreur sur Windows seulement!

L'application semble fonctionner correctement quel que soit le problème. Lorsque je démarre une simple application "Hello World" avec un serveur io.grpc.Server, je ne vois pas cette trace de pile INFO. Mais quand j'utilise ma vraie application qui ouvre une connexion bidirectionnelle http2 streaming entre un serveur grpc et un serveur jetée qui reste ouvert pendant la durée de l'application ... je reçois ce message une fois par seconde inondant mes journaux.

Est-il possible d'activer le NettyServerTransport au niveau WARN? Ou devrais-je m'inquiéter de la fréquence de ce message?

Répondre

0

J'ai découvert que ce message arrivait à cause d'un vérificateur de pulsation tcp sur une application Java tierce que nous utilisons pour voir si mon service est en service.

Il fait une demande InetSocketAddress(ip, port) pour vérifier si le port http2 répond toujours.

Chaque fois qu'il le fait (uniquement sous Windows), il vide cette trace ennuyante de la pile. En regardant pourquoi.

Numéro créé: https://github.com/nddipiazza/grpc-java-bidirectional-streaming-example