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

New server arch #130

Merged
merged 29 commits into from
Jul 3, 2024
Merged

New server arch #130

merged 29 commits into from
Jul 3, 2024

Conversation

kazu-yamamoto
Copy link
Owner

This implements #127

@kazu-yamamoto
Copy link
Owner Author

Test fails sometime.
This failure should be fixed with #102.

@kazu-yamamoto
Copy link
Owner Author

@khibino Even with this PR, bowline can work well.

@kazu-yamamoto kazu-yamamoto merged commit aa6f979 into main Jul 3, 2024
9 of 10 checks passed
@kazu-yamamoto kazu-yamamoto deleted the new-server-arch branch July 3, 2024 22:46
@edsko
Copy link
Collaborator

edsko commented Jul 4, 2024

If I update my dependencies to use this new version of http2, without changing anything else, my test suite fails. I will investigate why.

@edsko
Copy link
Collaborator

edsko commented Jul 4, 2024

All my tests simply deadlock. I will try to figure out where and why.

@kazu-yamamoto
Copy link
Owner Author

Thank you but I don't want you to take time to understand the deadlock at this moment.
I know the current code is unstable a bit.
I should at least resolve #102.
For this purpose, I'm now labeling all threads so that listThreads gives me much information.

@edsko
Copy link
Collaborator

edsko commented Jul 5, 2024

Ok, then I shall wait :) FWIW, it seems that the client can connect to the server just fine, and the server can respond, and the client gets the initial response headers, but then the (streaming) response body is never started, and the client is left waiting.

@kazu-yamamoto
Copy link
Owner Author

If you run h2c-client and h2c-server, they list up the current threads with their status per second. :)

@kazu-yamamoto
Copy link
Owner Author

@edsko It would be nice if you tested the current main.

@edsko
Copy link
Collaborator

edsko commented Jul 9, 2024

@kazu-yamamoto I just tried with 80de8db , same result as with aa6f979 . My test setup is that the client does a streaming request to the server; this request arrives, and the serves initiates a streaming response. The client receives the headers, but then nothing. If I insert a call to putStrLn in outBodyPush at

, outBodyPush = \b -> do
then I can see that print statement executed with the data that the client should receive, but the client does not receive anything after the response headers. There is a Wireshark log at well-typed/grapesy#183 where we're tracking updating to the new http2 architecture.

@kazu-yamamoto
Copy link
Owner Author

@edsko I cannot reproduce your issue.
If you kindly inserted several putStrLns into Sender.hs, you could see what's happening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants