Browse Source

don't crash out of the controller heartbeat loop here

Grant Limberg 3 years ago
parent
commit
9cf8dacfbb
1 changed files with 9 additions and 5 deletions
  1. 9 5
      controller/PostgreSQL.cpp

+ 9 - 5
controller/PostgreSQL.cpp

@@ -1014,12 +1014,16 @@ void PostgreSQL::heartbeat()
 		}
 		_pool->unborrow(c);
 
-		if (_redisMemberStatus) {
-			if (_rc->clusterMode) {
-				_cluster->zadd("controllers", "controllerId", ts);
-			} else {
-				_redis->zadd("controllers", "controllerId", ts);
+		try {
+			if (_redisMemberStatus) {
+				if (_rc->clusterMode) {
+					_cluster->zadd("controllers", "controllerId", ts);
+				} else {
+					_redis->zadd("controllers", "controllerId", ts);
+				}
 			}
+		} catch (sw::redis::Error &e) {
+			fprintf(stderr, "ERROR: Redis error in heartbeat thread: %s\n", e.what());
 		}
 
 		std::this_thread::sleep_for(std::chrono::milliseconds(1000));