This could be seen as a feature rather than a bug - choosing from a wider pool of nodes means we're more likely to get a successful connection. If so, we should document it, rather than leaving it implicit.
Trac: Milestone: Tor: 0.2.8.x-final to Tor: 0.2.9.x-final
I have moved the base32_encode() call into the if (!service) statement.
I could not move the rend_pk_digest() call into the statement because it's needed by rend_service_get_by_pk_digest() to fill in service which is needed by hs_service_requires_uptime_circ().
These changes have been pushed and I am setting this as needs review.
The changes file for this release said "bugfix on 0.4.0.2-alpha", but this is actually a bug on 0.1.0.1-rc. I fixed it in the ChangeLog and ReleaseNotes in #31461 (moved).