"Negative" Overseer ID の表示 | KandaSearch Community Support Forum

"Negative" Overseer ID の表示

トピック作成者:ks-solruserml-bot (2025/03/01 22:45 投稿)
5
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/0pwxw1rzdffmbxctdzv2rmplzgwt6lpl into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私たちの Solr クラスタで Overseer ID に関する奇妙な問題が発生し、Overseer の選出に問題を引き起こしています。

最近、Solr 8 のクラスタの一つで、専用の Overseer ホストをリーダーとして選出するのに問題が発生していることに気付きました。調査の結果、"Negative"(負の値) の Overseer ID(先頭にハイフンが付いた ID)が生成されていることがわかりました。

以下は ZooKeeper での ls /overseer_elect/election の出力例です:

[-5188057493699159958-1.1.1.15:8983_solr-n_0000192189,
 -5260098076001480373-1.1.1.19:8983_solr-n_0000192192,
 -5548288611309897871-1.1.1.28:8983_solr-n_0000192191,
 -6124715353171356222-1.1.1.18:8983_solr-n_0000192188,
 -6412935227404643144-1.1.1.22:8983_solr-n_0000192186,
 -6412935227404648050-1.1.1.89:8983_solr-n_0000192181,
 -6557083032988176767-1.1.1.105:8983_solr-n_0000192190,
 -6701159159471144532-1.1.1.219:8983_solr-n_0000192183]

(実際の IP アドレスは異なります)

発生している問題

先頭の -(マイナス記号)が影響し、LeaderElector.getNodeName()"5188057493699159958-1.1.1.15:8983_solr" という誤った値を返してしまい、本来の "1.1.1.15:8983_solr" ではなくなってしまうため、Overseer の選出に問題が生じています。

質問

  1. この Overseer ID の先頭に付く数字のセットは SolrZooKeeper のどちらが生成しているのでしょうか?
  2. これは修正可能な問題でしょうか?
  3. LeaderElector.NODE_NAME に簡単な変更を加えれば修正できそうですが、関連するユニットテストがないため、他の部分に影響を与える可能性があり慎重になっています。

この問題について、どなたか詳しい情報をお持ちでしたら、ご教示いただけると助かります。

よろしくお願いいたします。

Patrick

返信投稿者:ks-solruserml-bot (2025/03/01 22:45 投稿)

コードは確認していませんが、この桁数を見る限り、long 型の値が負の範囲にオーバーフローしているのではないでしょうか?

返信投稿者:ks-solruserml-bot (2025/03/01 22:46 投稿)

私も同じことが起こっているのではないかと思います。問題は、コードがこの状況を想定しておらず、適切に処理できていないことです。これをリセットする方法があるのか気になります。

返信投稿者:ks-solruserml-bot (2025/03/01 22:46 投稿)

その値はZooKeeperのセッションIDのようです。
関連しているかもしれない問題を見つけました:https://issues.apache.org/jira/browse/ZOOKEEPER-1622(ただし、このエラーはかなり前に見つけたと思うので、おそらくそれではないと思います)。

また、セッションIDの生成コード(上記のJIRAに記載されているコード、SessionTrackerImpl.initializeNextSessionId())を見ると、サーバーIDが127より大きい場合、結果として生成されるセッションIDは負の値になることがあります(私のビットシフト解析スキルがまだ合っていればですが)。
そのあたりで何か変更がありましたか?

リセットできるものではないようです。これはこのメソッドによって決まっています。Solrのコードを修正して、その文字列をより適切に解析できるようにする必要があります。

Ilan

返信投稿者:ks-solruserml-bot (2025/03/01 22:46 投稿)

こんにちはIlan、

アドバイスありがとうございます! まさにその通りでした。私たちはシステムを更新して、ZKサーバーIDを256ではなく127でラップするようにしたところ、その問題は解決しました。

改めて、本当にありがとうございました!

よろしくお願いします、
Patrick

返信投稿者:ks-solruserml-bot (2025/03/01 22:46 投稿)

Patrick(またはIlan)、この問題についてJIRAに課題を登録していただけますか?
理想的には、回避策や可能な解決策のアイデアも記載していただけると助かります。

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2025 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?