Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Excessive "gRPC config stream closed" log level #8270

Closed
Stono opened this issue Aug 27, 2018 · 25 comments
Closed

Excessive "gRPC config stream closed" log level #8270

Stono opened this issue Aug 27, 2018 · 25 comments

Comments

@Stono
Copy link
Contributor

Stono commented Aug 27, 2018

Hey,
I'm unsure if this is something to be concerned about, but we're seeing gRPC stream close errors every 5 minutes in istio-proxy, since upgrading to 1.0.1

[2018-08-27 12:52:53.873][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-27T12:52:59.980270Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:52:59.980354Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:53:09.980471Z     info    watchFileEvents: notifying
2018-08-27T12:54:12.028661Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:54:12.028732Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:54:22.028862Z     info    watchFileEvents: notifying
2018-08-27T12:55:20.072298Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:55:20.072390Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:55:30.072545Z     info    watchFileEvents: notifying
2018-08-27T12:56:49.085515Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:56:49.085627Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:56:59.085713Z     info    watchFileEvents: notifying
[2018-08-27 12:57:54.441][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-27T12:57:56.018026Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:57:56.018118Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:58:06.018249Z     info    watchFileEvents: notifying
2018-08-27T12:59:12.086320Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T12:59:12.086431Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T12:59:22.086533Z     info    watchFileEvents: notifying
2018-08-27T13:00:30.069600Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:00:30.069669Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:00:40.069754Z     info    watchFileEvents: notifying
2018-08-27T13:01:32.086959Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:01:32.087026Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:01:42.087198Z     info    watchFileEvents: notifying
2018-08-27T13:02:48.051021Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:02:48.051120Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
[2018-08-27 13:02:54.599][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-27T13:02:58.051266Z     info    watchFileEvents: notifying
2018-08-27T13:04:14.054629Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:04:14.054717Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:04:24.054823Z     info    watchFileEvents: notifying
2018-08-27T13:05:34.040420Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:05:34.040487Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:05:44.040588Z     info    watchFileEvents: notifying
2018-08-27T13:06:44.087289Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:06:44.087398Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:06:44.087482Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:06:44.087531Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:06:54.087512Z     info    watchFileEvents: notifying
[2018-08-27 13:07:54.800][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-27T13:08:06.072628Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:08:06.072715Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:08:16.072834Z     info    watchFileEvents: notifying
2018-08-27T13:09:14.013214Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:09:14.013421Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:09:24.013583Z     info    watchFileEvents: notifying
2018-08-27T13:10:44.138097Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:10:44.138254Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:10:54.138439Z     info    watchFileEvents: notifying
2018-08-27T13:12:10.028083Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:12:10.028152Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:12:20.028389Z     info    watchFileEvents: notifying
[2018-08-27 13:12:55.291][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-27T13:13:21.055465Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-27T13:13:21.055615Z     info    watchFileEvents: "/etc/certs//..2018_08_27_05_04_19.862743226": MODIFY|ATTRIB
2018-08-27T13:13:31.055736Z     info    watchFileEvents: notifying

The proxies seem to be synced and up to date so i don't think it's causing any problems?

@kyessenov
Copy link
Contributor

xDS stream closure is harmless since the config is delivered in entirety (no deltas), but I don't know why pilot would be closing streams automatically every 5 minutes.

@Stono
Copy link
Contributor Author

Stono commented Aug 29, 2018

Yeah we're consistently seeing this on all our proxies, on 5 minute intervals!

[2018-08-29 13:23:26.622][23][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-29T13:23:45.232338Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:23:45.232693Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:23:55.232884Z     info    watchFileEvents: notifying
2018-08-29T13:25:02.162422Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:25:02.162575Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:25:12.162729Z     info    watchFileEvents: notifying
2018-08-29T13:26:12.154425Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:26:12.154561Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:26:22.154721Z     info    watchFileEvents: notifying
2018-08-29T13:27:32.198214Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:27:32.198327Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:27:42.198545Z     info    watchFileEvents: notifying
[2018-08-29 13:28:27.049][23][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
2018-08-29T13:28:35.151709Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:28:35.151833Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:28:45.152055Z     info    watchFileEvents: notifying
2018-08-29T13:29:39.219356Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:29:39.219458Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:29:49.219638Z     info    watchFileEvents: notifying
2018-08-29T13:31:02.181997Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:31:02.182118Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:31:12.182321Z     info    watchFileEvents: notifying
2018-08-29T13:32:16.189341Z     info    watchFileEvents: "/etc/certs/": MODIFY|ATTRIB
2018-08-29T13:32:16.189419Z     info    watchFileEvents: "/etc/certs//..2018_08_28_07_03_35.689545315": MODIFY|ATTRIB
2018-08-29T13:32:26.189597Z     info    watchFileEvents: notifying
[2018-08-29 13:33:27.487][23][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,

@Stono
Copy link
Contributor Author

Stono commented Nov 15, 2018

Hey, can I rekindle this issue please because I seeming it correlate to 503s in a service.

[2018-11-15 20:37:38.272][19][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,

screenshot 2018-11-15 at 20 39 18

@ramaraochavali
Copy link
Contributor

If the stream is being closed exactly every 5 mins, it could be related to stream idle timeout.

@Stono
Copy link
Contributor Author

Stono commented Nov 26, 2018

Hey folks, I'm tidying up old issues.
This is still happening, I'm unclear if it's a problem or just log noise?

If it's expected behaviour, I'm guessing it shouldn't be warning

@sunyl527
Copy link

sunyl527 commented Dec 6, 2018

I have the same issue with istio 1.1.0-snapshot.3 .And I don't know the reason.
[2018-12-06 00:14:03.411][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:19:03.812][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:24:04.036][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:29:04.355][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:34:04.563][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:39:04.746][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:44:05.151][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:49:05.432][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:54:05.825][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 00:59:06.367][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 01:04:06.786][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 01:09:07.341][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 01:14:07.649][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13, [2018-12-06 01:19:08.148][000029][warning][upstream] [external/envoy/source/common/config/grpc_mux_impl.cc:268] gRPC config stream closed: 13,

@esnible
Copy link
Contributor

esnible commented Feb 5, 2019

It is just "log noise" but it is confusing to users so I have marked it area/user experience.

My Ratings pod has been running fine for 22 hours and there are 262 of these messages in the logs. There is a Stack Overflow question showing a user who is troubleshooting a different problem is looking at this message https://stackoverflow.com/questions/54307216/istio-proxy-unable-to-connect-to-istio-pilot

@slandry90
Copy link

I'm getting pounded with this log noise as well, every istio-proxy container as part of any pod is spitting this warning out every 5 minutes. Is there any way to supress this warning if this is actually log noise?

istio-proxy: [2019-03-06 14:44:33.157][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
istio-proxy: [2019-03-06 14:49:33.452][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
istio-proxy: [2019-03-06 14:54:33.966][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
istio-proxy: [2019-03-06 14:59:34.044][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
istio-proxy: [2019-03-06 15:04:34.364][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,
istio-proxy: [2019-03-06 15:09:34.593][18][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:240] gRPC config stream closed: 13,

@duderino duderino self-assigned this Mar 6, 2019
@duderino duderino added this to the 1.1 milestone Mar 6, 2019
@esnible
Copy link
Contributor

esnible commented Mar 6, 2019

This message is coming from Envoy, not Istio. I verified that it is still in the latest Envoy source. It moved, but is there.

https://github.com/envoyproxy/envoy/blob/master/source/common/config/grpc_stream.h#L92

The status 13 means internal error!

    // Some internal error occurred.
    Internal = 13,

I notice you are getting this message every 5 minutes. I am on 1.1 RC 2 and I am seeing it only every 30 minutes. Did something change in Istio or Envoy from 5 to 30 recently? That would give us an idea what is happening.

@duderino
Copy link
Contributor

duderino commented Mar 6, 2019

I can take this and would be happy to send a PR to envoy, but it would be after 1.1.

@esnible or anyone else, if you can get there sooner please take the bug and unassign me.

@Stono
Copy link
Contributor Author

Stono commented Apr 3, 2019

not stalleeeee. I'm all in favour of reducing log noise to rekindling this

@jaygorrell
Copy link
Contributor

On 1.1.2, this is still every 5 minutes for me.

@FrostyLeaf
Copy link

FrostyLeaf commented May 6, 2019

In my case, it happens every 27 ~ 32 minutes:

$ kubectl -n istio-system logs -f --tail 100 istio-ingressgateway-7cd754f799-t7mv4
[2019-05-05 09:52:19.294][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 10:21:32.455][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 10:51:39.239][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 11:24:20.087][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 11:56:42.888][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 12:25:52.858][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 12:54:36.891][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 13:24:15.806][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 13:54:32.204][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 14:23:43.493][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 14:54:18.966][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 15:25:15.038][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 15:53:04.969][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 16:24:56.705][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 16:54:01.207][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 17:23:23.399][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 17:50:40.284][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 18:18:02.363][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 18:48:50.065][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 19:19:37.260][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 19:51:35.086][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 20:20:36.873][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 20:50:51.037][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 21:22:52.077][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 21:54:05.085][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 22:25:38.560][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 22:54:33.171][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 23:25:03.020][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-05 23:53:03.143][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-06 00:20:53.743][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-06 00:51:58.785][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-05-06 01:19:39.861][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,

Http Request --> Kong --> Grpc client in K8S --> Grpc server in the same K8S cluster

kong logs:

2019/05/05 18:25:09 [error] 21868#0: *7975 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.x.x.x, server: kong, request: "POST /grpc-client/graphql HTTP/1.0", upstream: "http:https://10.x.x.x:31380/graphql", host: "kong.x.com", referrer: "http:https://kong.x.com/grpc-client/graphql"

I have traffic policies in DestinationRule object of both grpc client and server:

...
  trafficPolicy:
    connectionPool:
      tcp:
        connectTimeout: 30ms
        tcpKeepalive:
          interval: 75s
          time: 2400s
...

I don't know what exactly happens when the log shows, but it obviously interrupts communications between kong and istio, and never automatic recovery before you try.

@FrostyLeaf
Copy link

FrostyLeaf commented May 6, 2019

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.5 LTS
Release:	16.04
Codename:	xenial

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:35:51Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}

$ helm version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}

$ helm list
NAME                  	REVISION	UPDATED                 	STATUS  	CHART                            	APP VERSION	NAMESPACE
istio                 	8       	Tue Apr 30 11:07:18 2019	DEPLOYED	istio-1.1.4                      	1.1.4      	istio-system
istio-init            	9       	Tue Apr 30 11:07:15 2019	DEPLOYED	istio-init-1.1.4                 	1.1.4      	istio-system

$ istioctl version
version.BuildInfo{Version:"1.1.5", GitRevision:"9b6d31b74d1c0cc9358cc82d395b53f71393326b", User:"root", Host:"3e29fde4-6c3f-11e9-b00d-0a580a2c0205", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.4-10-g9b6d31b"}

@ChrisCooney
Copy link

Can confirm we're seeing it in our logs every 30 minutes or so.

@prabhatsharma
Copy link

Can confirm. every ~30minutes on 1.2.0

[2019-06-24 13:27:14.615][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-24 13:58:58.349][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-24 14:29:19.556][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-24 14:57:17.292][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-24 15:26:42.839][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-24 15:54:18.478][18][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,

@bzurkowski
Copy link

[2019-08-05 11:09:21.540][50][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,

This one informs that a connection to Pilot has been closed by the Pilot:

11:09:21.539891 IP <pilot-svc-ip>.15010 > <ingress-pod-ip>.52620: Flags [F.], seq 43279, ack 7965, win 741, options [nop,nop,TS val 4249216782 ecr 2430128964], length 0
11:09:21.540118 IP <ingress-pod-ip>.52620 > <pilot-svc-ip>.15010: Flags [F.], seq 7965, ack 43280, win 1424, options [nop,nop,TS val 2430138923 ecr 4249216782], length 0
11:09:21.540312 IP <pilot-svc-ip>.15010 > <ingress-pod-ip>.52620: Flags [.], ack 7966, win 741, options [nop,nop,TS val 4249216782 ecr 2430138923], length 0
11:09:21.997124 IP <ingress-pod-ip>.51874 > <pilot-svc-ip>.15010: Flags [S], seq 2918625375, win 29200, options [mss 1460,sackOK,TS val 2430139380 ecr 0,nop,wscale 7], length 0
11:09:21.997377 IP <pilot-svc-ip>.15010 > <ingress-pod-ip>.51874: Flags [S.], seq 2385132440, ack 2918625376, win 28960, options [mss 1460,sackOK,TS val 4249217239 ecr 2430139380,nop,wscale 7], length 0
11:09:21.997401 IP <ingress-pod-ip>.51874 > <pilot-svc-ip>.15010: Flags [.], ack 1, win 229, options [nop,nop,TS val 2430139380 ecr 4249217239], length 0

Caused by MaxServerConnectionAge keepalive parameter, by default set to 30 minutes. It forces Pilot to close long-living connections every 30 minutes:

$ kubectl -n istio-system logs istio-pilot-657b9d8d6-f59tl discovery |grep MaxServerConnectionAge  
2019-08-05T14:26:46.063619Z     info    FLAG: --keepaliveMaxServerConnectionAge="30m0s"

The parameter has been introduced in #10870 to improve rebalancing of clients to available Pilot instances:

Currently, since envoy-pilot connections are long-lived, server instances that are available earlier in the endpoints pool will get (and retain) a larger portion of the client connections, leaving connection distribution unbalanced. By controlling connection lifetime, clients are forced to periodically reconnect, achieving a better load balancing spread across servers - quicker.

The warning is harmless.

@esnible
Copy link
Contributor

esnible commented Aug 5, 2019

The harmless message confuses operators because it appears at warn level. Is there a way to rebalance that doesn't cause Envoy to log warnings?

Although the log claims the message is from grpc_stream.h it is actually from source/common/config/grpc_mux_impl.cc and it ALWAYS logs at warning level onRemoteClose(). Would Envoy accept a PR that lowered the level to info?

@howardjohn howardjohn changed the title gRPC warning in istio-proxy logs every 5 minutes Excessive "gRPC config stream closed" log level Aug 5, 2019
@howardjohn howardjohn modified the milestones: 1.1, Nebulous Future Aug 5, 2019
@howardjohn howardjohn assigned lambdai and unassigned duderino Aug 5, 2019
@howardjohn
Copy link
Member

@silentdai any idea if it is reasonable to just drop this to info level in Envoy side. tl;dr is this message occurs onRemoteClose every 30min and logs at warning level, when it is expected to occur every 30min in Istio.

@lambdai
Copy link
Contributor

lambdai commented Aug 6, 2019

Not a grpc lawyer. An analogy is that HTTP protocol it's always worth noticing when the connection is closed by remote.
It indicates pilot is actually break the protocol for a good reason.

Let me give it a try on envoy

@syhlion
Copy link

syhlion commented Aug 14, 2019

Confirm. every 30minutes on 1.2.2

[2019-08-13 17:36:34.683][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 18:03:48.581][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 18:36:32.635][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 19:06:12.387][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 19:35:27.823][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 20:03:47.778][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 20:34:33.456][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 21:06:39.411][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 21:35:53.102][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 22:05:42.948][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 22:36:54.603][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 23:04:15.354][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-13 23:36:16.330][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-14 00:05:35.663][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-14 00:38:30.351][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-08-14 01:10:50.757][22][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,

@prune998
Copy link
Contributor

I'm on 1.3.0 and I do have this error. The cluster was upgraded from 1.2.x to 1.3.0 when I started seeing this.
The issue here is that everytime I see this error in the Ingressgateway, all my GRPC streams connexions to/from my apps are disconnected :

istio-ingressgateway-69899c7956-9s5ct istio-proxy [2019-09-24 20:37:27.161][23][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:87] gRPC config stream closed: 13,

istio-ingressgateway-69899c7956-9s5ct istio-proxy {"upstream_host":"10.230.128.103:1081","x_forwarded_for":"10.230.128.226","requested_server_name":"useredged.alerting.devops.services","bytes_received":"1620","istio_policy_status":"-","bytes_sent":"0","upstream_cluster":"outbound|1081||useredged.alerting.svc.cluster.local","downstream_remote_address":"10.230.128.226:57518","authority":"useredged.alerting.devops.services:443","path":"/ra.useredgesvc.UserEdgeSVC/BiFeed","protocol":"HTTP/2","upstream_service_time":"-","upstream_local_address":"-","duration":"1053825","downstream_local_address":"10.230.128.200:443","upstream_transport_failure_reason":"-","route_name":"-","response_code":"0","user_agent":"grpc-go/1.23.0","response_flags":"DC","start_time":"2019-09-24T20:20:37.556Z","method":"POST","request_id":"deef3342-6677-4cb2-9e0a-4742e0ea69e5"}

I tried all sort of tcpdump to see is some of my streams were cancelled, but I can't find it. So it's clearly Envoy that is terminating (RESET) the TCP stream on both ends.

As far as it goes, I see nothing in the Pilot logs, but I'm going to restart it with a debug image.

@prune998
Copy link
Contributor

Error on the Pilot side is :

istio-pilot-6754c686f6-tj72w discovery scvg11: inuse: 30, idle: 30, sys: 61, released: 28, consumed: 33 (MB)
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.055397Z	info	transport: closing server transport due to maximum connection age.
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.055487Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.055520Z	info	transport: http2Server.HandleStreams failed to read frame: read tcp 10.230.131.15:15010->10.230.128.200:38730: use of closed network connection
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.055538Z	info	ads	ADS: "10.230.128.200:38730" router~10.230.128.200~istio-ingressgateway-69899c7956-9s5ct.istio-system~istio-system.svc.cluster.local-2 terminated rpc error: code = Canceled desc = context canceled
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.535068Z	info	ads	ADS:CDS: REQ 10.230.128.200:34258 router~10.230.128.200~istio-ingressgateway-69899c7956-9s5ct.istio-system~istio-system.svc.cluster.local-29 459.601µs version:2019-09-25T11:07:20Z/1
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.536848Z	info	ads	CDS: PUSH for node:istio-ingressgateway-69899c7956-9s5ct.istio-system clusters:278 services:100 version:2019-09-25T11:07:20Z/1
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.540279Z	info	ads	EDS: PUSH for node:istio-ingressgateway-69899c7956-9s5ct.istio-system clusters:234 endpoints:254 empty:[outbound_.2379_._.etcd-etcd-client.alerting.svc.cluster.local outbound_.19999_._.etcd-restore-operator.alerting.svc.cluster.local outbound_.19999_._.etcd-restore-operator.tools.svc.cluster.local outbound_.8080_._.kafka-operator.tools.svc.cluster.local outbound_.443_._.kafka-operator.tools.svc.cluster.local outbound_.1080_._.kafka2eventhub.datalab.svc.cluster.local outbound_.8080_._.etcd-operator-http.tools.svc.cluster.local outbound|2379||etcd-etcd-client.alerting.svc.cluster.local outbound|19999||etcd-restore-operator.alerting.svc.cluster.local outbound|19999||etcd-restore-operator.tools.svc.cluster.local outbound|8080||kafka-operator.tools.svc.cluster.local outbound|443||kafka-operator.tools.svc.cluster.local outbound|1080||kafka2eventhub.datalab.svc.cluster.local outbound|8080||etcd-operator-http.tools.svc.cluster.local]
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.540597Z	info	ads	LDS: PUSH for node:istio-ingressgateway-69899c7956-9s5ct.istio-system listeners:1
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:00.540837Z	info	ads	RDS: PUSH for node:istio-ingressgateway-69899c7956-9s5ct.istio-system routes:2
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.136422Z	info	transport: closing server transport due to maximum connection age.
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.136644Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.136691Z	info	transport: http2Server.HandleStreams failed to read frame: read tcp 10.230.131.15:15010->10.230.130.208:56056: use of closed network connection
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.136760Z	info	ads	ADS: "10.230.130.208:56056" sidecar~10.230.130.208~ctxerd-b9f37fed-5745c4646d-fwk6t.alerting~alerting.svc.cluster.local-4 terminated rpc error: code = Canceled desc = context canceled
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.401069Z	info	ads	ADS:CDS: REQ 10.230.130.208:33624 sidecar~10.230.130.208~ctxerd-b9f37fed-5745c4646d-fwk6t.alerting~alerting.svc.cluster.local-30 568.402µs version:2019-09-25T11:07:20Z/1
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.402295Z	info	ads	CDS: PUSH for node:ctxerd-b9f37fed-5745c4646d-fwk6t.alerting clusters:144 services:100 version:2019-09-25T11:07:20Z/1
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.403651Z	info	ads	EDS: PUSH for node:ctxerd-b9f37fed-5745c4646d-fwk6t.alerting clusters:117 endpoints:127 empty:[outbound|2379||etcd-etcd-client.alerting.svc.cluster.local outbound|19999||etcd-restore-operator.alerting.svc.cluster.local outbound|19999||etcd-restore-operator.tools.svc.cluster.local outbound|8080||kafka-operator.tools.svc.cluster.local outbound|443||kafka-operator.tools.svc.cluster.local outbound|1080||kafka2eventhub.datalab.svc.cluster.local outbound|8080||etcd-operator-http.tools.svc.cluster.local]
istio-pilot-6754c686f6-tj72w discovery gc 34 @1849.875s 0%: 0.018+2.6+0.019 ms clock, 0.28+0.16/9.5/16+0.30 ms cpu, 34->35->19 MB, 35 MB goal, 16 P
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.415447Z	info	ads	LDS: PUSH for node:ctxerd-b9f37fed-5745c4646d-fwk6t.alerting listeners:89
istio-pilot-6754c686f6-tj72w discovery 2019-09-25T11:38:10.418467Z	info	ads	RDS: PUSH for node:ctxerd-b9f37fed-5745c4646d-fwk6t.alerting routes:61

@zackzhangkai
Copy link
Member

after I upgrade from istio.1.3.3 to 1.4.8, I started notice this warning log. I ever wonder if my process met with trouble, it misleaded me.

@prune998
Copy link
Contributor

@zackzhangkai each proxy should log that every 30 min by default. It closes the connexion to pilot and create a new one. You can safely ignore it in this case.
If it's more often then you may have another problem. Please open a new issue then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests