aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/feature/hs/hs_pow.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/feature/hs/hs_pow.c b/src/feature/hs/hs_pow.c
index 15152bc649..4f662b58d9 100644
--- a/src/feature/hs/hs_pow.c
+++ b/src/feature/hs/hs_pow.c
@@ -436,9 +436,11 @@ pow_worker_replyfn(void *work_)
ip = find_desc_intro_point_by_ident(intro_circ->hs_ident, desc);
if (intro_circ && rend_circ && service_identity_pk && desc && ip &&
- job->pow_solution_out) { /* successful pow solve, and circs still here */
+ job->pow_solution_out) {
+ /* successful pow solve, and circs still here */
log_info(LD_REND, "Got a PoW solution we like! Shipping it!");
+
/* Set flag to reflect that the HS we are attempting to rendezvous has PoW
* defenses enabled, and as such we will need to be more lenient with
* timing out while waiting for the service-side circuit to be built. */
@@ -451,18 +453,16 @@ pow_worker_replyfn(void *work_)
intro_circ->hs_currently_solving_pow = 0;
}
- } else { /* unsuccessful pow solve. put it back on the queue. */
- log_notice(LD_REND,
- "PoW cpuworker returned with no solution. Will retry soon.");
+ } else {
+ if (!job->pow_solution_out) {
+ log_warn(LD_REND, "PoW cpuworker returned with no solution");
+ } else {
+ log_info(LD_REND, "PoW solution completed but we can "
+ "no longer locate its circuit");
+ }
if (intro_circ) {
intro_circ->hs_currently_solving_pow = 0;
}
- /* We could imagine immediately re-launching a follow-up worker
- * here too, but for now just let the main intro loop find the
- * not-being-serviced request and it can start everything again. For
- * the sake of complexity, maybe that's the best long-term solution
- * too, and we can tune the cpuworker job to try for longer if we want
- * to improve efficiency. */
}
pow_worker_job_free(job);