hs: Service only retries a failing RP once instead of using hs_service_max_rdv_failures consensus param
Everything is in can_relaunch_service_rendezvous_point()
.
Essentially, the circ->hs_service_side_rend_circ_has_been_relaunched
flag is set to true if we are about to retry and then never set back to false meaning, we only retry to connect once to a RP.
Under current network conditions, RP circuit are failing much more just to be built and so after only 2 tries, the service gives up while the client on the other side has no idea.
At the moment hs_service_max_rdv_failures
parameter is set to 2
and so this means it would retry 2 times after the first attempt meaning 3 attempts which is one more that what we do now (more chances!).
There is probably another discussion on which one is better as in 3
vs 2
vs N
but at least we ought to make services comply with the consensus parameter.
Backport candidate.