[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
kadircet added inline comments.



Comment at: clang-tools-extra/clangd/index/remote/server/Server.cpp:84
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "

sammccall wrote:
> kadircet wrote:
> > sammccall wrote:
> > > 10 seems much too low, maybe set this to 5 min or so?
> > > Going idle for a minute or so seems common, and the only real reason we 
> > > have to time connections out is to beat the gcp firewall. So I don't see 
> > > the need to be really aggressive here.
> > oops this was meant to be 10 minutes, not seconds :D
> Haha, makes more sense :-)
> 
> Setting this to exactly the gcp timeout seems tempting fate with hard to 
> debug races. Maybe 8 min?
fair point, done!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG1a5dfb7db23e: [clangd][remote] Add flag to set idletimeout 
(authored by kadircet).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

Files:
  clang-tools-extra/clangd/index/remote/server/Server.cpp


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 
0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(8 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 480."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(8 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 480."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
kadircet updated this revision to Diff 326667.
kadircet marked an inline comment as done.
kadircet added a comment.

- change default from 10 to 8 minutes


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

Files:
  clang-tools-extra/clangd/index/remote/server/Server.cpp


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 
0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(8 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 480."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(8 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 480."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Sam McCall via Phabricator via cfe-commits
sammccall accepted this revision.
sammccall added inline comments.



Comment at: clang-tools-extra/clangd/index/remote/server/Server.cpp:84
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "

kadircet wrote:
> sammccall wrote:
> > 10 seems much too low, maybe set this to 5 min or so?
> > Going idle for a minute or so seems common, and the only real reason we 
> > have to time connections out is to beat the gcp firewall. So I don't see 
> > the need to be really aggressive here.
> oops this was meant to be 10 minutes, not seconds :D
Haha, makes more sense :-)

Setting this to exactly the gcp timeout seems tempting fate with hard to debug 
races. Maybe 8 min?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
kadircet added inline comments.



Comment at: clang-tools-extra/clangd/index/remote/server/Server.cpp:84
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "

sammccall wrote:
> 10 seems much too low, maybe set this to 5 min or so?
> Going idle for a minute or so seems common, and the only real reason we have 
> to time connections out is to beat the gcp firewall. So I don't see the need 
> to be really aggressive here.
oops this was meant to be 10 minutes, not seconds :D


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
kadircet updated this revision to Diff 326632.
kadircet marked an inline comment as done.
kadircet added a comment.

Change 10 seconds to 600 seconds.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

Files:
  clang-tools-extra/clangd/index/remote/server/Server.cpp


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 
0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 600."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10 * 60),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 600."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Sam McCall via Phabricator via cfe-commits
sammccall accepted this revision.
sammccall added inline comments.
This revision is now accepted and ready to land.



Comment at: clang-tools-extra/clangd/index/remote/server/Server.cpp:84
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "

10 seems much too low, maybe set this to 5 min or so?
Going idle for a minute or so seems common, and the only real reason we have to 
time connections out is to beat the gcp firewall. So I don't see the need to be 
really aggressive here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97536/new/

https://reviews.llvm.org/D97536

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D97536: [clangd][remote] Add flag to set idletimeout

2021-02-26 Thread Kadir Cetinkaya via Phabricator via cfe-commits
kadircet created this revision.
kadircet added a reviewer: sammccall.
Herald added subscribers: usaxena95, arphaman.
kadircet requested review of this revision.
Herald added subscribers: cfe-commits, MaskRay, ilya-biryukov.
Herald added a project: clang.

By default gRPC has no idletimeout and some firewalls might drop idle
connections after a certain period. This results in idle clients
shouting into void until server resets the connection.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D97536

Files:
  clang-tools-extra/clangd/index/remote/server/Server.cpp


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 
0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 10."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);


Index: clang-tools-extra/clangd/index/remote/server/Server.cpp
===
--- clang-tools-extra/clangd/index/remote/server/Server.cpp
+++ clang-tools-extra/clangd/index/remote/server/Server.cpp
@@ -80,6 +80,11 @@
 "server-address", llvm::cl::init("0.0.0.0:50051"),
 llvm::cl::desc("Address of the invoked server. Defaults to 0.0.0.0:50051"));
 
+llvm::cl::opt IdleTimeoutSeconds(
+"idle-timeout", llvm::cl::init(10),
+llvm::cl::desc("Maximum time a channel may stay idle until server closes "
+   "the connection, in seconds. Defaults to 10."));
+
 static Key CurrentRequest;
 
 class RemoteIndexServer final : public v1::SymbolIndex::Service {
@@ -311,6 +316,8 @@
   grpc::ServerBuilder Builder;
   Builder.AddListeningPort(ServerAddress.str(),
grpc::InsecureServerCredentials());
+  Builder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS,
+ IdleTimeoutSeconds * 1000);
   Builder.RegisterService(&Service);
   std::unique_ptr Server(Builder.BuildAndStart());
   log("Server listening on {0}", ServerAddress);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits