YUKI Hiroshi
yuki****@clear*****
2015年 1月 7日 (水) 10:56:07 JST
Droonga開発チームの結城です。 フィードバックありがとうございます! ご不便をおかけして申し訳ありません…… > これはnode2の49126ポート、あるいはその他のポートも開放する必要があると いうことでしょうか? > (現在はnode1, node2ともdroonga-engineの10031、droonga-http-serverの 10041、serfの7946, > 8946ポートしか開放していません) node2上でdroonga-http-serverが動作していて、node2のdroonga-http-serverに 対してHTTPリクエストを送ったという状況であれば、このような現象が起こる可 能性は高いです。 droonga-http-server @ node2は、droonga-engine @ node1からのレスポンスを受け 取るための物と、droonga-engine @ node2からのレスポンスを受け取るための物 の、2つのサーバソケットを開いて接続を待ち受けます。 これらのソケットのためのポートが解放されていないと、droonga-http- server @ node2はdroonga-engine @ node1空送り返されてきたメッセージを受け取る ことができません。 現状では、これらのソケットのためのポート番号は完全にランダムに決定される 仕様のため、あらかじめ開放するポートを決めておくということが残念ながらで きません。 droonga-http-serverがdroonga-engineからのメッセージを待ち受けるための ポートを固定、あるいは使うポート番号の範囲を指定できるように、なるべく早 急に何らかの対策を講じたいと思っております! Seto Ryuta wrote: > こんにちは。瀬戸と申します。 > > 新規サービスの検索サーバーとしてdroongaを利用させて頂いています。 > > droongaの単体ノード2つで起動確認をした後、複数ノードの設定を試みているのですが、 > エラーにより応答が得られなくなってしまいました。 > その際に発生したエラーについてご質問させて下さい。 > > node1, node2という2つのサーバーを用意し、それぞれにdroonga1.0.9を導入し、単体でサービス起動、応答確認を行いました。 > その後、droonga-engine-configure, > droonga-http-server-configureからクラスタ構成に設定を変更しました。 > また、相互にノードが参照できるよう、/etc/hosts にそれぞれのホスト名を記述し、serfで利用する7946, 8946ポートを解放しました。 > 以上の設定を行った後、droongaを再起動し、system/statusのリクエストをしたのですが、サーバーから応答が得られなくなってしまいました。 > droongaを停止させると、node1のdroonga-engineに次のようなログが残っていました。 > 2015-01-07T09:24:20+09:00[3966][error]: [3960] fluent-message-sender: > failed to connect to node2:49126 > これはnode2の49126ポート、あるいはその他のポートも開放する必要があるということでしょうか? > (現在はnode1, node2ともdroonga-engineの10031、droonga-http-serverの10041、serfの7946, > 8946ポートしか開放していません) > ご教示頂ければ幸いです。 > よろしくお願いします。 > > > node1のdroonga-engineログ(IPアドレスは伏せています) > ==================================================== > 2015-01-07T09:23:49+09:00[3966][info]: engine: catalog loaded > path="/home/droonga-engine/droonga/catalog.json" mtime=2015-01-06 18:56:20 > +0900 > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Starting Serf agent... > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Starting Serf agent > RPC... > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Serf agent running! > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Node name: > 'node1:10031/droonga' > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Bind addr: > '[node1のIPアドレス]:7946' > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: RPC addr: > 'node1:7373' > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Encrypted: false > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Snapshot: false > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Profile: lan > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Log data will now stream > in as it occurs: > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Serf agent > starting > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: serf: EventMemberJoin: > node1:10031/droonga [node1のIPアドレス] > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Joining > cluster...(replay: false) > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: joining: [node2] > replay: false > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: serf: EventMemberJoin: > node2:10031/droonga [node2のIPアドレス] > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: joined: 1 nodes > 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Join completed. > Synced with 1 initial agents > 2015-01-07T09:23:49+09:00[3960][info]: serf[3964]: agent: Received event: > member-join > 2015-01-07T09:23:50+09:00[3960][info]: serf[3964]: agent.ipc: Accepted > client: [node1のIPアドレス]:38466 > 2015-01-07T09:23:53+09:00[3960][info]: serf[3964]: serf: EventMemberJoin: > node2/protocol-adapter [node2のIPアドレス] > 2015-01-07T09:23:54+09:00[3960][info]: serf[3964]: agent: Received event: > member-join > 2015-01-07T09:23:54+09:00[3960][info]: serf[3964]: agent.ipc: Accepted > client: [node1のIPアドレス]:38467 > 2015-01-07T09:23:55+09:00[3960][info]: serf[3964]: agent.ipc: Accepted > client: [node1のIPアドレス]:38468 > 2015-01-07T09:23:50+09:00[3966][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:23:50 +0900 > 2015-01-07T09:23:55+09:00[3966][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:23:54 +0900 > 2015-01-07T09:24:20+09:00[3966][error]: [3960] fluent-message-sender: > failed to connect to node2:49126 > 2015-01-07T09:24:24+09:00[3966][error]: [3960] fluent-message-sender: > failed to connect to node2:34670 > > > > node2のdroonga-engineログ(IPアドレスは伏せています) > ==================================================== > 2015-01-07T09:21:14+09:00[24485][info]: engine: catalog loaded > path="/home/droonga-engine/droonga/catalog.json" mtime=2015-01-06 18:58:10 > +0900 > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Starting Serf agent... > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Starting Serf agent > RPC... > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Serf agent running! > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Node name: > 'node2:10031/droonga' > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Bind addr: > '[node2のIPアドレス]:7946' > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: RPC addr: > 'node2:7373' > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Encrypted: false > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Snapshot: false > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Profile: lan > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Log data will now > stream in as it occurs: > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: Serf agent > starting > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: serf: EventMemberJoin: > node2:10031/droonga [node2のIPアドレス] > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: Joining > cluster...(replay: false) > 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: joining: > [node1] replay: false > 2015-01-07T09:21:13+09:00[24479][warn]: serf[24483]: agent: error joining: > dial tcp [node1のIPアドレス]:7946: connection refused > 2015-01-07T09:21:13+09:00[24479][warn]: serf[24483]: agent: Join failed: > dial tcp [node1のIPアドレス]:7946: connection refused, retrying in 30s > 2015-01-07T09:21:14+09:00[24479][info]: serf[24483]: agent: Received event: > member-join > 2015-01-07T09:21:15+09:00[24479][info]: serf[24483]: agent.ipc: Accepted > client: [node2のIPアドレス]:52964 > 2015-01-07T09:21:16+09:00[24479][info]: serf[24483]: serf: EventMemberJoin: > node1:10031/droonga [node1のIPアドレス] > 2015-01-07T09:21:17+09:00[24479][info]: serf[24483]: agent: Received event: > member-join > 2015-01-07T09:21:17+09:00[24479][info]: serf[24483]: agent.ipc: Accepted > client: [node2のIPアドレス]:52965 > 2015-01-07T09:21:20+09:00[24479][info]: serf[24483]: agent.ipc: Accepted > client: [node2のIPアドレス]:52966 > 2015-01-07T09:21:20+09:00[24479][info]: serf[24483]: serf: EventMemberJoin: > node2/protocol-adapter [node2のIPアドレス] > 2015-01-07T09:21:21+09:00[24479][info]: serf[24483]: agent: Received event: > member-join > 2015-01-07T09:21:22+09:00[24479][info]: serf[24483]: agent.ipc: Accepted > client: [node2のIPアドレス]:52970 > 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: Joining > cluster...(replay: false) > 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: joining: > [node1] replay: false > 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: joined: 1 nodes > 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: Join completed. > Synced with 1 initial agents > 2015-01-07T09:21:59+09:00[24479][info]: serf[24483]: serf: > EventMemberLeave: node1:10031/droonga [node1のIPアドレス] > 2015-01-07T09:22:00+09:00[24479][info]: serf[24483]: agent: Received event: > member-leave > 2015-01-07T09:21:15+09:00[24485][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:21:15 +0900 > 2015-01-07T09:21:18+09:00[24485][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:21:17 +0900 > 2015-01-07T09:21:22+09:00[24485][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:21:22 +0900 > 2015-01-07T09:22:01+09:00[24485][info]: engine: live-nodes loaded > path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07 > 09:22:00 +0900 > 2015-01-07T09:22:01+09:00[24485][error]: [24479] fluent-message-sender: > failed to connect to node1:10031 > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: failed to > run services: IOError: closed stream > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:130:in > `close' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:130:in > `shutdown' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:74:in > `shutdown_heartbeat_receiver' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:45:in > `stop_gracefully' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:53:in > `stop_immediately' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:224:in > `stop_immediately' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:165:in > `block in run_worker_process_agent' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:116:in > `call' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:116:in > `on_stop_immediately' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:103:in > `block in create_output' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:107:in > `call' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:107:in > `block in create_output' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > (eval):8:in `instance_exec' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > (eval):8:in `on_close' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:112:in > `close' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:134:in > `rescue in on_readable' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:127:in > `on_readable' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:191:in > `on_readable' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/loop.rb:88:in > `run_once' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/loop.rb:88:in > `run' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:120:in > `run_services' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:56:in > `run' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:32:in > `run' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/bin/droonga-engine-service:20:in > `<top (required)>' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/bin/droonga-engine-service:23:in `load' > 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: > /usr/local/bin/droonga-engine-service:23:in `<main>' > > -- > 瀬戸 > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev > -- 結城 洋志 <YUKI Hiroshi> E-mail: yuki****@clear***** 株式会社クリアコード 〒170-0005 東京都豊島区南大塚3-29-9 中野ビル3階 TEL : 03-5927-9440 FAX : 03-5927-9441 WWW : http://www.clear-code.com/