We should not retry submitting shares indefinitely or we may end up with a huge backlog during network outages, so discard stale shares if we failed to submit them and they've become stale in the interim.
diff --git a/cgminer.c b/cgminer.c
index a4d21a6..28dd38b 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2158,8 +2158,8 @@ static void *submit_work_thread(void *userdata)
/* submit solution to bitcoin via JSON-RPC */
while (!submit_upstream_work(work, pool->submit_curl)) {
- if (!opt_submit_stale && stale_work(work, true) && !pool->submit_old) {
- applog(LOG_NOTICE, "Stale share detected on submit retry, discarding");
+ if (stale_work(work, true)) {
+ applog(LOG_NOTICE, "Share became stale while retrying submit, discarding");
total_stale++;
pool->stale_shares++;
break;
@@ -2211,8 +2211,8 @@ static void *submit_extra_work(void *userdata)
/* submit solution to bitcoin via JSON-RPC */
while (!submit_upstream_work(work, curl)) {
- if (!opt_submit_stale && stale_work(work, true)) {
- applog(LOG_NOTICE, "Stale share detected, discarding");
+ if (stale_work(work, true)) {
+ applog(LOG_NOTICE, "Share became stale while retrying submit, discarding");
total_stale++;
pool->stale_shares++;
break;