well-typed / grapesy

Native Haskell gRPC client and server based on `http2`
Other
31 stars 4 forks source link

Disable HTTP-level timeouts altogether #123

Open edsko opened 2 months ago

edsko commented 2 months ago

Currently we have a workaround in place, but it only works on 64-bit systems. See https://github.com/kazu-yamamoto/http2/issues/112 and https://github.com/kazu-yamamoto/http2-tls/issues/12 .

edsko commented 2 months ago

Marked this as "enhancement" rather than bug because on 64-bit machines this works just fine, and on 32-bit machines things will still work, except that if we have more than 30 minutes between RPC messages, the connection will be broken. Could be argued that this constitutes a bug, however.

edsko commented 2 months ago

One annoying thing is that in the interop tests, when a test fails we might see

Uncaught exception: Thread killed by timeout manager

This can happen if a server is terminated before our worker gets a chance to install its own exception handler. (See https://github.com/well-typed/grapesy/pull/124 for a detailed analysis of these TimeoutThread exceptions.)