Azure / azure-relay-dotnet

☁️ .NET Standard client library for Azure Relay Hybrid Connections

Home Page:https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-what-is-it

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Too big response time changes 200 OK to 504 Gateway Time out

tomilaakkonen opened this issue · comments

If back-end responses too big message to Hybrid Connection Reverse Proxy it gets gateway time out as Hybrid Connection protocol marks the message failed if no response in 60 seconds even though back-end responded but it's still under HC Reverse Proxy before being forwarded to the service bus. This issue makes the HC listener crash, as it's trying to change 200 OK response to 504 gateway time out when you can't change the response code after you have responded 200 OK.

Actual Behavior

  1. The request must be responded in 60 seconds

Expected Behavior

  1. There shouldn't be time out when back-end already responded 200 OK.

Versions

  • OS platform and version: Windows
  • .NET Version: 3.1
  • NuGet package version or commit ID:

I fascinated by how this is ignored for 10 years across all platforms (MS Forums and Github).
The most sad part, I don't understand where exactly the problem lies.
No code no help no support for paying customers.

azureResponse.StatusCode = HttpStatusCode.Accepted;
await Task.Delay(30000);
byte[] contentBytes2 = Encoding.UTF8.GetBytes("Second chunk");
await azureResponse.OutputStream.WriteAsync(contentBytes2, 0, contentBytes2.Length);
await azureResponse.OutputStream.FlushAsync();
await Task.Delay(30000);
byte[] contentBytes3 = "Third chunk"u8.ToArray();
await azureResponse.OutputStream.WriteAsync(contentBytes3, 0, contentBytes3.Length);
await azureResponse.OutputStream.FlushAsync();