Deprecate the opt_retries feature as no one wants cgminer to automatically abort. Leave a null placeholder for configurations that still have it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
diff --git a/cgminer.c b/cgminer.c
index b5ff643..072c0f2 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -92,7 +92,6 @@ bool opt_quiet;
static bool opt_realquiet;
bool opt_loginput;
const int opt_cutofftemp = 95;
-static int opt_retries = -1;
static int opt_fail_pause = 5;
static int fail_pause = 5;
int opt_log_interval = 5;
@@ -732,6 +731,11 @@ static char *set_icarus_timing(const char *arg)
}
#endif
+static char *set_null(const char __maybe_unused *arg)
+{
+ return NULL;
+}
+
/* These options are available from config file or commandline */
static struct opt_table opt_config_table[] = {
#ifdef WANT_CPUMINE
@@ -955,8 +959,8 @@ static struct opt_table opt_config_table[] = {
opt_set_bool, &opt_removedisabled,
"Remove disabled devices entirely, as if they didn't exist"),
OPT_WITH_ARG("--retries|-r",
- opt_set_intval, opt_show_intval, &opt_retries,
- "Number of times to retry before giving up, if JSON-RPC call fails (-1 means never)"),
+ set_null, NULL, NULL,
+ opt_hidden),
OPT_WITH_ARG("--retry-pause|-R",
set_int_0_to_9999, opt_show_intval, &opt_fail_pause,
"Number of seconds to pause, between retries"),
@@ -2386,7 +2390,6 @@ static void *get_work_thread(void *userdata)
struct pool *pool = current_pool();
struct curl_ent *ce = NULL;
struct work *ret_work;
- int failures = 0;
pthread_detach(pthread_self());
@@ -2424,13 +2427,6 @@ static void *get_work_thread(void *userdata)
/* obtain new work from bitcoin via JSON-RPC */
while (!get_upstream_work(ret_work, ce->curl)) {
- if (unlikely((opt_retries >= 0) && (++failures > opt_retries))) {
- applog(LOG_ERR, "json_rpc_call failed, terminating workio thread");
- free_work(ret_work);
- kill_work();
- goto out;
- }
-
/* pause, then restart work-request loop */
applog(LOG_DEBUG, "json_rpc_call failed on get work, retry after %d seconds",
fail_pause);
@@ -2535,7 +2531,6 @@ static void *submit_work_thread(void *userdata)
struct work *work = wc->work;
struct pool *pool = work->pool;
struct curl_ent *ce;
- int failures = 0;
pthread_detach(pthread_self());
@@ -2567,11 +2562,6 @@ static void *submit_work_thread(void *userdata)
pool->stale_shares++;
break;
}
- if (unlikely((opt_retries >= 0) && (++failures > opt_retries))) {
- applog(LOG_ERR, "Failed %d retries ...terminating workio thread", opt_retries);
- kill_work();
- break;
- }
/* pause, then restart work-request loop */
applog(LOG_INFO, "json_rpc_call failed on submit_work, retry after %d seconds",
@@ -3507,9 +3497,9 @@ static void set_options(void)
immedok(logwin, true);
clear_logwin();
retry:
- wlogprint("[Q]ueue: %d\n[S]cantime: %d\n[E]xpiry: %d\n[R]etries: %d\n"
+ wlogprint("[Q]ueue: %d\n[S]cantime: %d\n[E]xpiry: %d\n"
"[P]ause: %d\n[W]rite config file\n[C]gminer restart\n",
- opt_queue, opt_scantime, opt_expiry, opt_retries, opt_fail_pause);
+ opt_queue, opt_scantime, opt_expiry, opt_fail_pause);
wlogprint("Select an option or any other key to return\n");
input = getch();
@@ -3537,14 +3527,6 @@ retry:
}
opt_expiry = selected;
goto retry;
- } else if (!strncasecmp(&input, "r", 1)) {
- selected = curses_int("Retries before failing (-1 infinite)");
- if (selected < -1 || selected > 9999) {
- wlogprint("Invalid selection\n");
- goto retry;
- }
- opt_retries = selected;
- goto retry;
} else if (!strncasecmp(&input, "p", 1)) {
selected = curses_int("Seconds to pause before network retries");
if (selected < 1 || selected > 9999) {
@@ -4033,7 +4015,6 @@ static bool get_work(struct work *work, struct thr_info *thr, const int thr_id)
struct work *work_heap;
struct timeval now;
struct pool *pool;
- int failures = 0;
bool ret = false;
/* Tell the watchdog thread this thread is waiting on getwork and
@@ -4109,10 +4090,6 @@ retry:
ret = true;
out:
if (unlikely(ret == false)) {
- if ((opt_retries >= 0) && (++failures > opt_retries)) {
- applog(LOG_ERR, "Failed %d times to get_work");
- return ret;
- }
applog(LOG_DEBUG, "Retrying after %d seconds", fail_pause);
sleep(fail_pause);
fail_pause += opt_fail_pause;
@@ -4570,16 +4547,9 @@ retry_pool:
gettimeofday(&end, NULL);
if (end.tv_sec - start.tv_sec > 30)
continue;
- if (opt_retries == -1 || failures++ < opt_retries) {
- if (failures == 1)
- applog(LOG_WARNING,
- "longpoll failed for %s, retrying every 30s", pool->lp_url);
- sleep(30);
- } else {
- applog(LOG_ERR,
- "longpoll failed for %s, ending thread", pool->lp_url);
- goto out;
- }
+ if (failures == 1)
+ applog(LOG_WARNING, "longpoll failed for %s, retrying every 30s", pool->lp_url);
+ sleep(30);
}
if (pool != cp) {
pool = select_longpoll_pool(cp);