Details
-
Task
-
Status: In Review (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
-
Q3/2026 Server Maintenance
Description
This is a larger, and a long needed cleanup, inspired by MDEV-39473 (client failing on macOS)
- Always use non-blocking sockets. There is no reason to use blocking sockets, like, at all, because of the item below, and because async API fully depends on non-blocking already.
The blocking in poll over non-blocking sockets is already in place, and correct timeout handling. - Remove (sometimes painful) timeout handling via setsockopt - it can be a problem on OSes that are rarely tested, e.g macOS. The problem is already solved for non-blocking sockets via poll/select
- Make OpenSSL and GNUTLS use underlying pvio IO functions via BIO . It would handle timeouts correctly, and also the async API.
potentially it could make OpenSSL via named pipe possible, there is already in plans for the server. - Remove now-obsolete pvio_blocking etc, constant switchery from blocking modes, setsockopt, Linuxisms like MSG_DONTWAIT etc.
Attachments
Issue Links
- blocks
-
MDEV-39473 main.mdev375, main.connect fail on macOS
-
- In Progress
-