-
Notifications
You must be signed in to change notification settings - Fork 157
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
IdTCPClient ConnectTimeout broken on linux >6.1.32 (potentially affects higher-ups like TIdHTTP* ? ) #491
Comments
I'm not familiar with how the Linux kernel works, but Indy has never relied on OS-level timeouts for its That being said, there is an open ticket to re-design |
Yes, and as I understand, the kernel now prohibits shutting down the connection attempt, and Indy's mechanism is now useless.
|
Oh, well, that would certainly suck :-( That doesn't seem like a very good change for them to make in the kernel, and it certainly isn't documented behavior, AFAICS.
Then I guess I need to bump up the priority on #3. |
I have verified it working again. Without changing anything in freepascal, it works in linux 6.6.2 and 6.1.63. (timeout in the program is 3000ms, see above). Most probably fixed by torvalds/linux@419ce13 , as mentioned in #493 .
|
When trying to connect to a port that silently drops the SYN packets (i.e. doesn't answer), this program used to work
On Linux up to (including) commit torvalds/linux@6ffc57e it works as expected, waiting 3 seconds and then stopping:
However, with commit torvalds/linux@4faeee0 the timeout mechanism is broken; it now waits around 2 minutes, which is roughly the same that wget would.
net.ipv4.tcp_syn_retries = 6
so I assume this is expected from retries after2+4+8+16+32+64=126 seconds
.I can only guess that the new linux code, that looks for waiting threads now interferes with Indy's timeout-counting mechanism.
What can be done?
debian linux/aarch64 fpc 2.0.10+dfsg-4+b2 , Indy Version 5bcd9ce
The text was updated successfully, but these errors were encountered: