Skip to content

Conversation

@baranyaib90
Copy link
Contributor

Hi Aaron,
I'm sorry, because this one will be quite a large pack :(
I hope commit messages are good enough to detail the changes.
Highlights:

  1. Fixing curl needed more event #178
  2. Debugging improvement: flightrecorder
  3. HTTPS connection handling changes: socket+event improvements, max idle timeout option, different request timeout in initial and further requests.
  4. More user-friendly help page (I hope)
  5. Updated HTTP3/QUIC build dependencies

Best regards,
Balázs

In current commit the important part is to avoid process exit
and recover from faulty state, even when every ongoing request
has to be dropped.
To have debug logs dump before FLOG panic
and when it is necessary when debugging a rare issue.

In options_cleanup() according to valgrind not closing
logfd if it is the default stdout.
A few curl version after 8.9.0 kept connections opened
which did not count in CURLMOPT_MAX_TOTAL_CONNECTIONS limit.
Therefore more IO events are necessary to handle more
sockets than we expect.

Details in: curl/curl#15857
It was not working at all before.
Better to get rid of TCP keepalive since it was not necessary.
Raising curl requirement level because of option.
It has been made configurable via argument, because different
DoH server providers have different timeouts configured.
When a large burst of DNS requests came in and the
only HTTPS/2 connection was too many time in idle state,
curl closes it and opens brand new connection for every
single DNS request.
Obviously later it will keep only 1 and close all the others.
So it is better to wait for multiplexing.
When testing this setting, the DNS query latency values
did not raise.
If we already have a connection 5 second should be enough,
else leave time for connecting to server.
Goal is to fail faster if some reused HTTPS connection was idle
for way too many time and it is actually not working anymore.
It was quite a mess and inconsistent.
It will not be perfect with this change, but still better.
In case of boolean options, default values are omitted.
@@ -0,0 +1,21 @@
#ifndef _FR_H_
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: RING_BUGGER_H

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will try not to forget to fix later.

@aarond10 aarond10 merged commit 0e074b4 into aarond10:master Mar 13, 2025
2 checks passed
@aarond10
Copy link
Owner

Thanks for the commits!

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