ホーム > IP Messenger > IP Messenger v0.9.1 でも自分自身が二人表示されてしまう問題

IP Messenger v0.9.1 でも自分自身が二人表示されてしまう問題

2009 年 12 月 21 日 コメントをどうぞ コメント

<追記> (2010/01/06) 解決したので別のエントリを書きました。</追記>

問い合わせを頂いたので、同じことでお困りの方のために書いておきます。

IP Messenger for MacOS X v0.9.1 の修正履歴に、「Intel Mac でユーザリストに自分自身が二人表示されてしまう問題を修正」という項目があるのですが、依然として自分が二人表示されてしまう場合があります。原因は別のところにあり、修正に取り組んでいます。

現状の回避策は、発生に気づいたら IP Messenger を一度終了して起動し直してもらうしかありません

修正済みの不具合。

0.9.1 で修正した問題は、以前 0.9.1b2 を出したときのエントリに細かく書いてあります。原因は CPU が変わることによる影響で、起動時から終了までずっと自分が二人表示され、一方には届きますが一方には無視されてしまうものです。

これについては考慮漏れといえる類のミスで、CPU の種類を問わず正しく動作することができる API をきちんと使っておらず、開発当時は PowerPC しかなかったために気づかなかったものです。

今でも時々発生する不具合。

いまでも環境によっては二人現れてしまう場合、もしくはいつの間にか二人になっている、二人だったものがまた一人に戻っているという現象が発生する場合があります。
表示されるメカニズムに共通する部分もあるのですが、Intel Mac かどうかは関係なく、直接の原因は 0.9.1 で修正した部分とは別のところにあります。

現象は無線 LANと有線 LANを両方使っている環境で発生します(もし、それ以外の環境でも同様の現象が発生する方がいらしたら、不具合報告フォームから教えて頂けると助かります)。

  • 無線 LAN と有線 LAN 両方接続した状態で起動する
  • 無線 LAN のみ接続中に起動して、あとから有線 LAN につなぐ(あるいは切り替える)
  • 上記の逆(有線 LAN 起動から無線 LAN へ)

といった状況です。特にオフィスや研究室等で、自席で有線 LAN(速いから)を使い、自席以外へ移動する際には無線 LAN に切り替えて使う、という場合には日常的に発生してしまうと思います。

原因と対応方針。

原因は、自分自身に関する情報を、起動時だけに取得していて、最初に見つかった有効なネットワークインタフェースのものをずっと使い続けてしまうことにあります。

IP Messenger は随時ユーザの一覧を更新するようなメッセージを相互にやりとりしているのですが、起動したあとでネットワーク設定がかわると、起動時とは別の IP アドレスでユーザ情報を送受信してしまい、見た目自分と同じようにみえるのですが同名の別ユーザとしてふるまうようになってしまいます。

これを回避するためには、ネットワーク環境が変わったタイミングで、ユーザ一覧の更新に当たる処理を実行することになります。ただ、そのあたりの処理は、Mac OS X 10.1 や 10.2 のころに UNIX like(BSD) の仕組みを利用して作ったもので動作していて、Mac OS X のサービス(System Configuration Framwork)を利用したものに置き換える必要があるのですがそこそこ大がかりになりそうで、時間がかかっています。

この問題は、BTS (Bug Tracking System)上で、#15 および #16 として管理していて、他の問題とあわせて修正して 0.9.2 としてリリースしたいと考えています。


カテゴリー: IP Messenger タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。