[Groonga-commit] droonga/droonga-engine at fe14e5e [master] droonga-engine: ignore "serf leave" failure

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Jan 5 17:41:12 JST 2015


Kouhei Sutou	2015-01-05 17:41:12 +0900 (Mon, 05 Jan 2015)

  New Revision: fe14e5eb0ad83ff586208378ccb1ac319c89f69e
  https://github.com/droonga/droonga-engine/commit/fe14e5eb0ad83ff586208378ccb1ac319c89f69e

  Message:
    droonga-engine: ignore "serf leave" failure

  Modified files:
    lib/droonga/command/droonga_engine.rb

  Modified: lib/droonga/command/droonga_engine.rb (+18 -4)
===================================================================
--- lib/droonga/command/droonga_engine.rb    2015-01-05 17:40:23 +0900 (0ef3fbd)
+++ lib/droonga/command/droonga_engine.rb    2015-01-05 17:41:12 +0900 (b27083b)
@@ -23,6 +23,7 @@ require "coolio"
 require "sigdump/setup"
 
 require "droonga/engine/version"
+require "droonga/loggable"
 require "droonga/path"
 require "droonga/address"
 require "droonga/serf"
@@ -335,6 +336,8 @@ module Droonga
       end
 
       class MainLoop
+        include Loggable
+
         def initialize(configuration)
           @configuration = configuration
           @loop = Coolio::Loop.default
@@ -390,16 +393,14 @@ module Droonga
         def stop_gracefully
           @command_runner.stop
           @catalog_observer.stop
-          @serf.leave
-          @serf_agent.stop
+          stop_serf
           @service_runner.stop_gracefully
         end
 
         def stop_immediately
           @command_runner.stop
           @catalog_observer.stop
-          @serf.leave
-          @serf_agent.stop
+          stop_serf
           @service_runner.stop_immediately
         end
 
@@ -433,6 +434,15 @@ module Droonga
           @serf_agent =****@serf*****_agent(@loop)
         end
 
+        def stop_serf
+          begin
+            @serf.leave
+          rescue Droonga::Serf::Command::Failure
+            logger.error("Failed to leave from Serf cluster: #{$!.message}")
+          end
+          @serf_agent.stop
+        end
+
         def run_catalog_observer
           catalog_observer = FileObserver.new(@loop, Path.catalog)
           catalog_observer.on_change = lambda do
@@ -451,6 +461,10 @@ module Droonga
           command_runner.start
           command_runner
         end
+
+        def log_tag
+          "droonga-engine"
+        end
       end
 
       class ServiceRunner
-------------- next part --------------
HTML����������������������������...
Descargar 



More information about the Groonga-commit mailing list
Back to archive index