グリッド接続のSIMにテレポート出来ません

グリッド接続のSIMにテレポート出来ません

by Shinobar Martinek -
Number of replies: 13
質問コーナーで報告されたものですが、バグっぽいので、こちらに再掲します。
 
2月28日に報告したものとまったく同じ現象が、3月19日午前7時現在再現しています。
今回も sirius03 からは問題なくTPできます。
前回はサーバー再起動で直ったと。
 
(以下は 2015年 02月 28日(土曜日) 12:33 - Shinobar Martinek の投稿)
ここ数日の現象か、JOG Center SIM から、グリッッド接続の Shinobar Gate や Borabora へ直接飛べません。数日前は JOG Center SIM の隣の Avater Center へ移動し、そこから Shinobar Gate へ飛べたような気がしましたが、いま確認すると、JOG Center SIM、 Avater Center はじめ周辺のほとんどのSIMから Shinobar Gate へ飛べません。
 

探してみると、JOG Center SIM から Sirius03(City) を経由すると Shinobar Gate へ飛べました。逆に Shinobar Gate から以上のいずれの SIMにも飛べます。が、Sirius03 以外は戻れないという非対称。同様にグリッド接続している Shibuya、 Tomoyo、 Kote1 とは問題なく行き来できます。

JOG Center SIM 周辺から Shinobar Gate へ飛ぼうとして失敗する現象を見ていると、Shinobar Gate のサーバーに反応が見られません。アクセスされることなくタイムアウトで終わっているようです。DNSがらみですかねえ? Shinobar Gate のIPは固定でなく DynamicDNS を使ってます。昨夜 21:00 ごろ IP変更があった後、この実験まで約15時間、IPは動いてません。

In reply to Shinobar Martinek

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

JOG Center Sim は再起動したところ直ったようです.
他のSIMも順次再起動します.

起動しっぱなしではなく,周期的に再起動させた方がいいのかもしれません.

In reply to Shinobar Martinek

Re: グリッド接続のSIMにテレポート出来ません

by Shinobar Martinek -

動的 IP で運用しています。IPが変わる度に同様の現象、JOG Center Simや JOG meets から Shinobar Gate へTPできないことが、数日間続きます。古いDNSのキャッシュが残っていて、シミュレータ再起動まで更新されないという感じに見えます。

たいてい Sirius03 を経由するとOK。これは、バージョンのせいでしょうか?

In reply to Shinobar Martinek

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

今一度チェックしましたら,JOG Center Simや JOG meets を動かしているPC上で dnsmasq が動いていました.

dnsmasq は DNS のキャッシュとしても働きますので,これを停止してみました.

 

 

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by Shinobar Martinek -

Sirius03からはたいていTPできるので、不思議に思っておりました。 dnsmasq かもしれませんね。現在は JOG Center SIM や JOG meets から Shinobar Gate へ TP できます。

しかし、Shinobar Gate をホームに、あるいは最後にログアウトした場所にしていて、直接のログインができません。他のHG、たとえば OSGから jogrid.net:8002:Shinobar Gate も直接飛べません。いったん JOG Center Sim に入り、そこから Shinobar Gate へはTPできます。

In reply to Shinobar Martinek

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

Robustサーバが動いているサーバでも dnsmasq が動いていたので,こいつも止めました.

どうでせう?

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by Shinobar Martinek -

改善されているような、変わらないような…。

グリッド接続のグローバルIPが変わったとき、Sirius03からのTPは15分後くらいにはできるようになります。JOG Center SIM や JOG meets などからのTPは、それより遅れて 30分〜数時間かかるようです。

これと別問題かもしれないが、JOG Center SIM から自分のグリッド接続SIM(Shinobar Annex など)にTPできるようになっても、直接ログイン、あるいはOSGなどから直接TP(jogrid.net:8002:Shinobar Annex など)できない状況は、それから1週間ほど続きます。

In reply to Shinobar Martinek

Re: グリッド接続のSIMにテレポート出来ません

by Kline Sarah -

こんにちは私もこの問題を抱えています。 JOGおよびOSGで。それは、モノのバグです。これにより、ユーザーにIPアドレスをキャッシュしています。プロバイダによるユーザのIPアドレスの変更は、その後、地域の再起動までは家に旅行することができない場合。

新しいマンティスはこのためにオープンしました:

http://opensimulator.org/mantis/view.php?id=7566

それはJOGのために役立つ情報を願っています

hello i have this problem also. In JOG and in OSG. It is a bug of Mono. It is caching users IP address. If user IP address changes by provider then cannot travel to home until a restart.

A new Mantis was opened for this:

http://opensimulator.org/mantis/view.php?id=7566

I hope information can be helpful.

In reply to Kline Sarah

Re: グリッド接続のSIMにテレポート出来ません

by fuugetu flowerbird -

 みなさん、こんにちはJOGユーザー会の風月です。
 サラさんが先日ユーザー会にお越しくださって、上記のようなご相談をいただきました。
 サラさんは、海外在住の方で日本語が得意ではありません、投稿をご遠慮なさっていたのですが、ユーザー会で言葉の問題サポートさせていただいて
 今回の件をフォーラムで解決していきましょうということになりました。
 大変お上手な日本語に翻訳されているので必要ないかもしれませんが、私が通訳の意味でコメントさせていただきます。(拙い通訳でごめんなさい。) 私は技術的なことに疎いので、TPができない問題解決にどなたかコメントを寄せていただけませんか?日本語で結構です^^
 
 -------------------
 私がJOGで自分のシムに接続すると、その翌日はいつも接続できません。
 (マップの)サーチ機能で他のリージョンからTPすると成功します。
 翌日はやはり動きません!
 この問題はOSGでも同様です。(OSGの)アドミニストレーターはmonoの問題ではないかと考えているようです。
 バージョン3.2は大丈夫でした。4はダメでした。IPアドレスのキャッシングのようです。
 仮にユーザーIPアドレスがISP事業者によって変更されるとホームにたどり着けません。
 また、JOGセンターがリスタートした場合、この問題は解消されます。
 mantis(訳注:ごめんなさい、よくわからない言葉です)ではこの問題について既に言及されています。
 http://opensimulator.org/mantis/view.php?id=7566
 この情報がJOGのお役に立てば幸いです。
  -------------------
 
  Hi,Sarah Let me support your issue by JOGusers. We will try to translate your post.
  Your translation is awesome , but if you want to use your native Lang English, we will translate in Japanese smile

In reply to fuugetu flowerbird

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

JOG の mono のバージョンは 3.12.1 です.

RobustサーバがRegion のIPをキャッシュしているのかもしれませんね.

mantis はフリーのバグトラッカー(バグ追跡・管理システム)です.カマキリがシンボルキャラクターです.
OpenSim はバクトラッカーに mantis を使用しています.

JOGでも使用してみようかとも思いましたが,それ程大きなシステムでもないので使用を見合わせています.
http://www.jogrid.net/mantis/login_page.php に残骸があります.

OpenSim のmantis に載ったのであれば,上手くゆけばその内解決されるかもしれません(放っておかれる場合もあります) .

 

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by fuugetu flowerbird -

It is used version 3.12.1 on JOG mono.

Roubust server may cash Region IP.

Mantis(Kamakiri) which is adopted as a symbol is Free Bug Trucker( for traceing bugs or manager of system) .
It is also used for OpenSim bug trucker.

Actually auther Iseki concidered using it,but he has postponed the using yet. Becouse he thought JOG is not so huge system yet.
Please check the URL  http://www.jogrid.net/mantis/login_page.php

He think if the issue of mono is posted on OpenSim mantis forum , it maybe solved soon...

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

これはやっぱり mono のバグのようですね.

バグというより,mono には IPのキャッシュ時間を指定する機能が実装されていないみたいです,

こうなると,OpenSim の方でもどうしようもないですね.sad

 

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by Iseki Fumikazu -

その後,mono-3.12.1 のソースコードを読んでみたんですが,どうもキャシュしているところが見当たりません.

mcs/class/System/System.Net/Dns.cs
mono/metadata/socket-io.c
mono/io-layer/sockets.c

の辺りです.でも結局最後には Cの gethostbyname() 関連を呼んでいます.

そこで,C#で以下のようなプログラムを作って,DNSで Aレコードを変更してみたところ,即時に表示が変わりした.

using System;
using System.Net;

namespace net.jogrid
{
    public class TestClass
    {
        public static void Main(string[] args)
        {
            while(true)
            {
                foreach (IPAddress host in Dns.GetHostAddresses("test.jogrid.net"))
                {
                    Console.WriteLine(host.ToString());
                }
                System.Threading.Thread.Sleep(10000);
            }
        }
    }
}

mono が IPをキャッシュしているというのはどうも怪しい気がします.

それとも,私が何か勘違いをしているのでしょうか?

In reply to Iseki Fumikazu

Re: グリッド接続のSIMにテレポート出来ません

by fuugetu flowerbird -

(Fuugetu translated 2 comments of Iseki's.)

(first comment)

It seems this issue is bug of mono.
Rather than bug, it seems that mono have no function for picking up time of IP cache.
so I can't help it. sad

-----------------------

(second comment)

Later, I checked out the source code mono-3.12.1. I could not find the part of IP cache.

mcs/class/System/System.Net/Dns.cs
mono/metadata/socket-io.c
mono/io-layer/sockets.c

It maybe around this part... But I know that the code read gethostbyname() so on finally.
So I made the program what such as following. Then changed A-record by DNS, it was changed immediately.

using System;
using System.Net;

namespace net.jogrid
{
public class TestClass
{
public static void Main(string[] args)
{
while(true)
{
foreach (IPAddress host in Dns.GetHostAddresses("test.jogrid.net"))
{
Console.WriteLine(host.ToString());
}
System.Threading.Thread.Sleep(10000);
}
}
}
}

I am wondering if mono have cache of IP.
or Is it my misunderstanding something ?