diff --git a/include/maxscale/hk_heartbeat.h b/include/maxscale/hk_heartbeat.h index 580671a79..6c58dabe4 100644 --- a/include/maxscale/hk_heartbeat.h +++ b/include/maxscale/hk_heartbeat.h @@ -23,4 +23,14 @@ MXS_BEGIN_DECLS extern int64_t hkheartbeat; +/** + * Convert heartbeats to seconds + */ +#define HB_TO_SEC(a) ((int64_t)a / 10) + +/** + * Convert seconds to heartbeats + */ +#define SEC_TO_HB(a) ((int64_t)a * 10) + MXS_END_DECLS diff --git a/server/core/config.cc b/server/core/config.cc index d0af60d21..2aea8955f 100644 --- a/server/core/config.cc +++ b/server/core/config.cc @@ -3953,7 +3953,7 @@ json_t* config_maxscale_to_json(const char* host) json_t* attr = json_object(); time_t started = maxscale_started(); - time_t activated = started + (cnf->promoted_at / 10); + time_t activated = started + HB_TO_SEC(cnf->promoted_at); json_object_set_new(attr, CN_PARAMETERS, param); json_object_set_new(attr, "version", json_string(MAXSCALE_VERSION)); json_object_set_new(attr, "commit", json_string(MAXSCALE_COMMIT)); diff --git a/server/core/monitor.cc b/server/core/monitor.cc index 34dc395cc..689a3b570 100644 --- a/server/core/monitor.cc +++ b/server/core/monitor.cc @@ -1784,8 +1784,7 @@ void mon_process_state_changes(MXS_MONITOR *monitor, const char *script, uint64_ ptr->new_event && // Event has not yet been processed monitor->last_master_down > monitor->last_master_up) // Latest relevant event { - // Scale the timeout to heartbeat resolution which is 1/10th of a second - int64_t timeout = (int64_t)monitor->failover_timeout * 10; + int64_t timeout = SEC_TO_HB(monitor->failover_timeout); int64_t t = hkheartbeat - ptr->server->triggered_at; if (t > timeout) diff --git a/server/core/server.cc b/server/core/server.cc index b131602ac..da7454c52 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -505,7 +505,7 @@ dprintServer(DCB *dcb, const SERVER *server) dcb_printf(dcb, "\tMaster Id: %ld\n", server->master_id); dcb_printf(dcb, "\tLast event: %s\n", mon_get_event_name((mxs_monitor_event_t)server->last_event)); - time_t t = maxscale_started() + (server->triggered_at / 10); + time_t t = maxscale_started() + HB_TO_SEC(server->triggered_at); dcb_printf(dcb, "\tTriggered at: %s\n", http_to_date(t).c_str()); if (server->slaves) @@ -1464,7 +1464,7 @@ static json_t* server_json_attributes(const SERVER* server) json_object_set_new(attr, "replication_depth", json_integer(server->depth)); const char* event_name = mon_get_event_name((mxs_monitor_event_t)server->last_event); - time_t t = maxscale_started() + (server->triggered_at / 10); + time_t t = maxscale_started() + HB_TO_SEC(server->triggered_at); json_object_set_new(attr, "last_event", json_string(event_name)); json_object_set_new(attr, "triggered_at", json_string(http_to_date(t).c_str())); diff --git a/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc b/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc index bf6035cc0..151d0f4bf 100644 --- a/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc +++ b/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc @@ -82,8 +82,8 @@ void handle_connection_keepalive(RWSplit *inst, RWSplitSession *rses, if (diff > keepalive) { - MXS_INFO("Pinging %s, idle for %d seconds", - backend->name(), diff / 10); + MXS_INFO("Pinging %s, idle for %ld seconds", + backend->name(), HB_TO_SEC(diff)); modutil_ignorable_ping(backend->dcb()); } }