From: mohamed.m.m.hafez@... Date: 2021-01-13T16:05:12+00:00 Subject: [ruby-core:102063] [Ruby master Feature#17528] Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout Issue #17528 has been updated by mohamedhafez (Mohamed Hafez). According to https://bugs.ruby-lang.org/issues/12435, the only reason we are using `Timeout.timeout` in `Net::HTTP#connect` instead of using nonblocking io and `IO.select` is so that we can place a timeout on the getaddrinfo function, @normalperson can you clarify here? ---------------------------------------- Feature #17528: Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout https://bugs.ruby-lang.org/issues/17528#change-89924 * Author: mohamedhafez (Mohamed Hafez) * Status: Open * Priority: Normal ---------------------------------------- Currently, `Addrinfo.getaddrinfo` ignores the `:resolv_timeout` option if we are on a system without `getaddrinfo_a`. It would be great if instead it would fall back to using `Timeout.timeout`. That way, we could get rid of a lot of the usage of `Timeout.timeout` for systems that *do* have `getaddrinfo_a`. For example, for Net::HTTP#connect we could easily then do something like this: https://github.com/ruby/ruby/compare/master...mohamedhafez:patch-3?diff=split. The motivation for this is that the usage of Timeout.timeout is inherently unsafe, and it would be great to stop using it where we can (see https://www.mikeperham.com/2015/05/08/timeout-rubys-most-dangerous-api/ and http://blog.headius.com/2008/02/ruby-threadraise-threadkill-timeoutrb.html) -- https://bugs.ruby-lang.org/ Unsubscribe: