Browse Source

Retry also if the decoding of work fails.

Con Kolivas 14 years ago
parent
commit
73e33c0925
1 changed files with 3 additions and 0 deletions
  1. 3 0
      main.c

+ 3 - 0
main.c

@@ -2001,6 +2001,7 @@ static bool get_upstream_work(struct work *work, bool lagging)
 	if (opt_debug)
 		applog(LOG_DEBUG, "DBG: sending %s get RPC call: %s", pool->rpc_url, rpc_req);
 
+retry:
 	/* A single failure response here might be reported as a dead pool and
 	 * there may be temporary denied messages etc. falsely reporting
 	 * failure so retry a few times before giving up */
@@ -2013,6 +2014,8 @@ static bool get_upstream_work(struct work *work, bool lagging)
 	}
 
 	rc = work_decode(json_object_get(val, "result"), work);
+	if (!rc && retries < 3)
+		goto retry;
 	work->pool = pool;
 	total_getworks++;
 	pool->getwork_requested++;