I am trying to prototype a java client cache interceptor in AppEngine (java8) and gRPC(1.17.1). The cache interceptor needs to write to AppEngine memcache, so it requires thread be created via ThreadManager <https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/ThreadManager#currentRequestThreadFactory-->. When I try to supply a custom executor to gRPC via NettyChannelBuilder <https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java#L210> or withExecutor <https://grpc.io/grpc-java/javadoc/index.html?io/grpc/ManagedChannelBuilder.html>, the call is lost and future get hangs. Note that, all the grpc calls have a deadline of 10 seconds, but I don't see the timeout happening. Seems like gRPC is running into an internal error. AppEngine eventually kills the request with Deadline Exceeded error and no logs are available in the appengine console.
I went through the issue, https://github.com/grpc/grpc-java/issues/3296 and from the fix described here, https://github.com/grpc/grpc-java/pull/3382 supplying the executor should make this possible. But given the sandboxed nature of AppEngine, I don't know what is going wrong. 1. In which thread interceptors execute ? Does it use the executor specified in the FutureStub or the event loop ? 2. Besides the executor, what other internal threads gRPC use ? Can I control them to run on the application specified threads ? 3. When thread issues happen, why does the gRPC call hangs, instead of timing out/failing with an error. Thanks, Arun. -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/57d1a83e-9e80-4859-a4a7-eb2aca143a59%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
