Remove an HS's entries in last_hid_serv_requests when a connection attempt ends
Right now, a Tor client records its HS descriptor fetch attempts in the last_hid_serv_requests
table, and it refuses to try again to fetch a descriptor from an HSDir relay if it has tried to fetch the same descriptor from the same relay within the last 15 minutes. That table serves a useful purpose: it keeps track of which HSDir relays the client has already asked for a descriptor within a connection attempt, so that the client will eventually try each of the relays responsible for the descriptor it is trying to fetch, and then stop trying to fetch the descriptor if none of the HSDirs have a working descriptor for the service.
Unfortunately, this behaviour means that if Tor fails to retrieve a working descriptor for an HS, it will not try again for up to 15 minutes, even though the HS may have published a new, working descriptor already.
The most common reason that my Tor client has run out of HSDirs to query for a descriptor is that I've sent SIGNAL NEWNYM multiple times, thereby discarding the HS descriptor and forcing Tor to refetch it, but it's possible to run out of HSDirs to try for other reasons (e.g. the HS wasn't running yet the first time). The NEWNYM case is #3309 (moved); this ticket is about not making users use NEWNYM to fix an HS problem that NEWNYM didn't cause.