From: cben@... Date: 2017-05-14T11:51:03+00:00 Subject: [ruby-core:81154] [Ruby trunk Feature#10674] Net::HTTP retries idempotent requests once after a timeout, but its not configurable Issue #10674 has been updated by cben (Beni Cherniavsky-Paskin). Can confirm on 2.4.1. The responsible code is here: https://github.com/ruby/ruby/blob/v2_4_1/lib/net/http.rb#L1468 I'm thinking of making a simple patch adding a boolean "#retry=". Application or higher-level gems can then implement any retry logic... ---------------------------------------- Feature #10674: Net::HTTP retries idempotent requests once after a timeout, but its not configurable https://bugs.ruby-lang.org/issues/10674#change-64806 * Author: jlecour (J��r��my Lecour) * Status: Open * Priority: Normal * Assignee: drbrain (Eric Hodel) * Target version: ---------------------------------------- Hi, I've noticed that Net::HTTP retries idempotent requests once after a time-out. It seems to adhere to the RFC 2616 (http://tools.ietf.org/html/rfc2616), but it is not always the best thing to do. When you don't know exactly how a remote web service works, it may be wise to retry after a time-out. But when you know that a retry won't change anything, it should be possible to disable this automatic retry. Otherwise, the server will have to deal with 2 requests (instead of 1) and the client will effectively time-out twice later than expected (time for the first and second time-out). Having a basic "#retry=" (like we have "#read_timeout=" or "#open_timeout" would be good first step. The value could be a simple boolean, or even an integer for the maximum number of retries. The "Retry" middleware in Faraday has a more comprehensive feature set with max retries, exponential back-off, ��� : https://github.com/lostisland/faraday/blob/master/lib/faraday/request/retry.rb -- https://bugs.ruby-lang.org/ Unsubscribe: