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

HTTP/2 connection stalls with APPLICATION_NDJSON #3495

Open
samueldlightfoot opened this issue Nov 5, 2024 · 0 comments
Open

HTTP/2 connection stalls with APPLICATION_NDJSON #3495

samueldlightfoot opened this issue Nov 5, 2024 · 0 comments
Assignees
Labels
type/bug A general bug

Comments

@samueldlightfoot
Copy link
Contributor

samueldlightfoot commented Nov 5, 2024

Summary

When using HTTP/2 with APPLICATION_NDJSON, infinite connection hangs occur for endpoint calls when the input cardinality to a reactive stream reaches a certain size. The hangs seem to result from not consuming the data quickly enough, as removing concurrency limits on data consumption alleviates the issue.

The minimum reproducible example, as explained in the linked GitHub repository, involves more than a simple A-calls-B scenario. Specifically:

A calls B (c1) and calls B again (c2) using the output produced from c1

Points of Interest

  • Hangs do not occur when using APPLICATION_JSON or HTTP/1.1.
  • If a timeout handler is specified, it will eventually close the connection.
  • Increasing the concurrency level at which data is consumed to a sufficient value prevents the hangs, perhaps indicating there is a consumption deadlock whereby two resources are waiting for a condition on each other.
  • Using separate WebClient instances for c1 and c2 has no effect

Steps to Reproduce

To reproduce the issue, follow the steps provided in the minimal reproducible sample: https://github.com/samueldlightfoot/htt2-hangs/tree/main

Logs and further information is at the above GitHub link in the README.

Tested on Reactor Netty v1.1.23.

@samueldlightfoot samueldlightfoot added status/need-triage A new issue that still need to be evaluated as a whole type/bug A general bug labels Nov 5, 2024
@violetagg violetagg removed the status/need-triage A new issue that still need to be evaluated as a whole label Nov 10, 2024
@violetagg violetagg self-assigned this Nov 10, 2024
@chemicL chemicL assigned chemicL and unassigned violetagg Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug A general bug
Projects
None yet
Development

No branches or pull requests

3 participants