Description

On QFX5100, streaming telemetry clients were keep getting disconnected. The grpc connection uses TCP which gets stuck in FIN_WAIT_2. The pings work fine but the clients are not receiving any stats from the device.

Symptoms

Troubleshooting steps taken: Verified device configs, verified that streaming telemetry server is reachable through ping, checked TCP connection and determined that the device seems to be trying to end the connection with the telemetry server.

Pings to the system are successful but the TCP connection shows that it is in FIN_WAIT_2 state instead of ESTABLISHED. 

The switch can ping the clients.

user@switch> ping 2002:::1

PING6(56=40+8+8 bytes) 2a00::2 --> 2002::1

16 bytes from 2002::1, icmp_seq=0 hlim=118 time=334.945 ms
16 bytes from 2002::1, icmp_seq=1 hlim=118 time=333.341 ms
16 bytes from 2002::1 icmp_seq=2 hlim=118 time=11.239 ms
16 bytes from 2002::1, icmp_seq=3 hlim=118 time=11.218 ms

--- 2002::1 ping6 statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/std-dev = 11.218/172.686/334.945/161.458 ms

 

However, the TCP connection could not stay in established state.

user@switch> start shell
% netstat -an | grep 10162

tcp6 0 0 2a00::1.10162 2002::1.53350 FIN_WAIT_2
tcp6 0 0 2a00::1.10162 2002::2.54676 FIN_WAIT_2

 

We enabled the traceoptions through the following config, however since the TCP connection never stayed stable, there traces didn't help much.

set system services extension-service traceoptions file grpc-trace
set system services extension-service traceoptions file size 10m
set system services extension-service traceoptions file files 10
set system services extension-service traceoptions flag all
set system services extension-service traceoptions flag libgrpc-debug

 

Following logs can be seen in the grpc-trace,

Nov  4 08:02:47 Listen: Grpc channel to unix:/var/run/japi_na-grpcd transitioned from GRPC_CHANNEL_IDLE state to GRPC_CHANNEL_CONNECTING for client ipv6:2002::7:33446 
Nov  4 08:02:47 Listen: Grpc channel to unix:/var/run/japi_na-grpcd transitioned from GRPC_CHANNEL_CONNECTING state to GRPC_CHANNEL_TRANSIENT_FAILURE, respective clients will be terminated
Nov  4 08:02:47 DeleteChannel: Deleting entries in tag map for client ipv6:2002::7:33446
Nov  4 08:02:47 DeleteChannel: Session for Client ipv6:2002::7:33446 will be terminated as a channel transitioned to FATAL/TRANSIENT FAILURE
Nov  4 08:02:47 TerminateClient: Client ipv6:2002::7:33446 will be terminated

Solution

We noticed that na-grpcd logs did not have any recent logs written to it. "show system processes extensive" shows na-grpcd process was also not running.

Restarting the na-grpcd process fixed the issue.

user@switch> show system processes extensive | match na-grpcd

user@switch> restart na-grpc-server

error: Daemon providing gRPC interfaces is not running
Daemon providing gRPC interfaces started, pid 40949


user@switch> show system processes extensive | match na-grpcd

40949 root 40 0 19056K 9004K select 0:00 0.00% na-grpcd
40949 root 40 0 19056K 9004K select 0:00 0.00% na-grpcd
40949 root 40 0 19056K 9004K select 0:00 0.00% na-grpcd
40949 root 40 0 19056K 9004K select 0:00 0.00% na-grpcd
40949 root 40 0 19056K 9004K select 0:00 0.00% na-grpcd
40949 root 40 0 19056K 9004K ucond 0:00 0.00% na-grpcd
40949 root 8 0 19056K 9004K nanslp 0:00 0.00% na-grpcd

Modification History

2024-11-19 : Article Created