2016-11-08 10 views
1

私はnumOwners = 2の3ノードのinfinispanクラスタを持っています。ノードの1つがネットワークから切断されて元に戻ったときにクラスタビューに関する問題に遭遇しています。次のログです:infinispanとjgroupsとの間違ったマージビュー

(着信-1、BrokerPE-0から28575)ISPN000094:チャンネルISPNのための新しいクラスタビューを受信:[BrokerPE-0から28575 | 2] (3) [BrokerPE-0から28575 、SEM03VVM-201から59385、SEM03VVM-202から33714]

ISPN000094:チャネルISPNのための受信新しいクラスタ・ビュー:[BrokerPE-0から28575 | 3] (2) [BrokerPE-0から28575、SEM03VVM-チャネルISPNための受信した新しい、MERGEDクラスタビュー: - 202から33714] > 1つのノードが

ISPN000093切断MergeView :: [BrokerPE-0から28575までの| 4](2)[BrokerPE-0-28 [BrokerPE-0-28575 | 2](3)[BrokerPE-0-28575、SEM03VVM-202-33714]、[BrokerPE-0-28575 | 3](2)私はInfinispan 7.0を使用してい

<config xmlns="urn:org:jgroups" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups-3.6.xsd"> 
    <TCP 
      bind_addr="${jgroups.tcp.address:127.0.0.1}" 
     bind_port="${jgroups.tcp.port:7800}" 
     loopback="true" 
     port_range="30" 
     recv_buf_size="20m" 
     send_buf_size="640k" 
     max_bundle_size="31k" 
     use_send_queues="true" 
     enable_diagnostics="false" 
     sock_conn_timeout="300" 
     bundler_type="old" 

     thread_naming_pattern="pl" 

     timer_type="new3" 
     timer.min_threads="4" 
     timer.max_threads="10" 
     timer.keep_alive_time="3000" 
     timer.queue_max_size="500" 


     thread_pool.enabled="true" 
     thread_pool.min_threads="2" 
     thread_pool.max_threads="30" 
     thread_pool.keep_alive_time="60000" 
     thread_pool.queue_enabled="true" 
     thread_pool.queue_max_size="100" 
     thread_pool.rejection_policy="Discard" 

     oob_thread_pool.enabled="true" 
     oob_thread_pool.min_threads="2" 
     oob_thread_pool.max_threads="30" 
     oob_thread_pool.keep_alive_time="60000" 
     oob_thread_pool.queue_enabled="false" 
     oob_thread_pool.queue_max_size="100" 
     oob_thread_pool.rejection_policy="Discard" 

     internal_thread_pool.enabled="true" 
     internal_thread_pool.min_threads="1" 
     internal_thread_pool.max_threads="10" 
     internal_thread_pool.keep_alive_time="60000" 
     internal_thread_pool.queue_enabled="true" 
     internal_thread_pool.queue_max_size="100" 
     internal_thread_pool.rejection_policy="Discard" 
     /> 

    <!-- Ergonomics, new in JGroups 2.11, are disabled by default in TCPPING until JGRP-1253 is resolved --> 
    <TCPPING timeout="3000" initial_hosts="${jgroups.tcpping.initial_hosts:HostA[7800],HostB[7801]}" 
      port_range="2" 
      num_initial_members="3" 
      ergonomics="false" 
     /> 

    <!-- MPING bind_addr="${jgroups.bind_addr:127.0.0.1}" break_on_coord_rsp="true" 
     mcast_addr="${jboss.default.multicast.address:228.2.4.6}" 
     mcast_port="${jgroups.mping.mcast_port:43366}" 
     ip_ttl="${jgroups.udp.ip_ttl:2}" 
     num_initial_members="3"/--> 
    <!-- <MPING bind_addr="${jgroups.bind_addr:127.0.0.1}" break_on_coord_rsp="true" 
     mcast_addr="${jboss.default.multicast.address:228.2.4.6}" 
     mcast_port="${jgroups.mping.mcast_port:43366}" 
     ip_ttl="${jgroups.udp.ip_ttl:2}" 
     num_initial_members="3"/> --> 
    <MERGE3 max_interval="30000" min_interval="10000"/> 

    <FD_SOCK bind_addr="${jgroups.bind_addr}"/> 
    <FD timeout="3000" max_tries="3"/> 
    <VERIFY_SUSPECT timeout="3000"/> 
    <!-- <BARRIER /> --> 
    <!-- <pbcast.NAKACK use_mcast_xmit="false" retransmit_timeout="300,600,1200,2400,4800" discard_delivered_msgs="true"/> --> 
    <pbcast.NAKACK2 use_mcast_xmit="false" 
        xmit_interval="1000" 
        xmit_table_num_rows="100" 
        xmit_table_msgs_per_row="10000" 
        xmit_table_max_compaction_time="10000" 
        max_msg_batch_size="100" discard_delivered_msgs="true"/> 
    <UNICAST3 xmit_interval="500" 
      xmit_table_num_rows="20" 
      xmit_table_msgs_per_row="10000" 
      xmit_table_max_compaction_time="10000" 
      max_msg_batch_size="100" 
      conn_expiry_timeout="0"/> 

    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="400000"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true" merge_timeout="6000"/> 
    <tom.TOA/> <!-- the TOA is only needed for total order transactions--> 

    <UFC max_credits="2m" min_threshold="0.40"/> 
    <!-- <MFC max_credits="2m" min_threshold="0.40"/> --> 
    <FRAG2 frag_size="30k"/> 
    <RSVP timeout="60000" resend_interval="500" ack_on_delivery="false" /> 
    <!-- <pbcast.STATE_TRANSFER/> --> 
</config> 

: - [BrokerPE-0から28575、SEM03VVM-201から59385、SEM03VVM-202から33714] >間違ってマージ

以下は、私のJGroups configです。 2とjgroups 3.6.1のバージョンです。私はconfigsをたくさん試しましたが、何も働いていませんでした。あなたの助けに感謝します。

[UPDATE]次のプロパティを1以上に設定した後に問題が発生しました: "internal_thread_pool.min_threads"

+0

... FD、FD_ALL、MERGE3とGMSのためのTRACEレベルのログを持っていいだろう8.2.4。最終的な? –

+0

@DanBerindei私はしませんでしたが、ここで問題はjgroupsクラスタのマージであるようです。 – geekprogrammer

+0

@DanBerindei Infinispan 8.2.4でも同様の問題が発生しました。 – geekprogrammer

答えて

1

だから、我々が持っている、これを簡素化する

  • ビューブローカー| 2 = {ブローカーは、201202}
  • 201葉は、ビューが今あるブローカー| 3 = {ブローカー、202}
  • ビューブローカ| 3とブローカ| 2の間にマージがあり、これは不正なビューブローカにつながる| 4 = {ブローカ、201}

ここで何が起こっているのかを調べるため[1]を作成しました。最初に、マージビューのサブビューにはサブグループコーディネータが含まれていたはずですが、そうではありませんでした。

ここで正確に何が起こったのか説明できますか?これは複製できますか?あなたが、例えば、新しいInfinispan版で試してみました[1] https://issues.jboss.org/browse/JGRP-2128

+0

はい、私たちのノードの1つをネットワークから手動で切り離して接続すると、これは私たちの環境で常に再現可能です。バグを作成していただきありがとうございます;私はそれにトレースログを追加します。 – geekprogrammer

+0

この問題の回避策はありますか? – geekprogrammer

関連する問題