OpenSim-0.9.1系の不具合

OpenSim-0.9.1系の不具合

- Shinobar Martinek の投稿
返信数: 11

このところOSGrid配布のOpenSim-0.9.1系バイナリを主にスタンドアロンHGの環境でテストしています。
最近の 2017-04-21、2017-05-12、2017-05-28 の3つについてテストしました。3つの不具合に遭遇しています。

1.外部のHGアバタが入れない。
この問題は 2017-05-12にだけ起こり、2017-05-28では解消されています。

2. 一部の特定オブジェクトが装着できない。
一部特定の髪が装着できません。地面にRezすると正常に表示されます。
上記3つのバージョンすべてで起こります。OpenSimプロジェクト公式配布の 0.8.2.1 では正常に装着できます。JOG配布の 0.9.0Devでも同じ問題は起こります。しかし JOG Center Sim では正常に装着できます。

3. 他HGから来訪のアバタがスタンドアロンHG上の、元はフルパーだったオブジェクトをコピーして持ち帰ったときに、その中身のパーミッションがコピー改変譲渡すべて不可に変化する。
前項2と同様に OSG配布の0.9.1系3つ、JOG配布の 0.9.0Devでも起こります。 0.8.2.1 では問題なく、フルパーはフルパーのままです。

最近のOSGrid配布のOpenSim-0.9.1系バイナリには上記2と3の問題が深刻です。とうぶん、うちでは OpenSimプロジェクト公式配布の 0.8.2.1 を継続使用します。

Shinobar Martinek への返信

Re: OpenSim-0.9.1系の不具合

- Shinobar Martinek の投稿

今日、OSGrid配布最新の 2017-05-28付けのものを再実験したところ、さきに報告した3つの不具合はすべて解消されていました。どこかのキャッシュに問題が残っていたのだろうか?

さらに、JOG内での実験報告していた、オブジェクトのコピーの問題も様子が変わっていました。

JOG内では「オブジェクトに中身がある場合、すべての中身が「全員にコピー可」と設定されていること。」が条件となっていましたが、今日実験した 2017-05-28付けのスタンドアロンHGでは、そうでなくてもオブジェクトをコピーできます。(OpenSim-0.8.2.1 と同じ挙動)

Shinobar Martinek への返信

Re: OpenSim-0.9.1系の不具合

- Xpyoda Janus の投稿

私のところの自前グリッドも、OSGrid配布最新の 2017-05-28付けのものにしました。

これ以前のものだと、コンソールから 'shutdown' or 'quit' しても、以下のメッセージを出力したまま、だんまりになってました(しかたがないので、PIDをしらべてkillしてた...)。

[SHUTDOWN]: Shutdown processing on main thread complete.  Exiting...

具体的には、ソースコードOpenSim/Framework/Servers/BaseOpenSimServer.cs の ShutdownSpecific()ってメソッドの中で、Environment.Exit(0);をコールしたまま、プログラムが終了もせずだんまりになってました (Environment.Exit(0)は、最終的には exit()システムコールを呼び出すはずなんだけど...。デバッグ用ログ吐くようにして、確認はしてみた。FreeBSDでうごくまともなデバッガー欲しい...)。
ですが、2017-05-28のソースコードは、ShutdownSpecific() の中身が変わってて、スレッドの後始末をしてから、終了するようになってました。

というわけで、2017-05-28 版では、いろいろな問題が解決してて、とりあえずよかったです。

 ちなみに、monoのバージョンは、4.8.1です。FreeBSDのportsの場合、3.xは脆弱性があるとかで、他のライブラリとかの整合性の不具合を無視しないともうビルドできなくなってしまっています。最初は、これが正常に終了しない原因なのかなーっておもってたけど、ちがうようで、よかった...。

% mono --version
Mono JIT compiler version 4.8.1 (4.8.1.0 Mon May 15 16:34:30 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notification:  kqueue
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
Xpyoda Janus への返信

OSG配布のOpenSimバイナリをJOGで使う方法

- Shinobar Martinek の投稿

JOG配布の OpenSim-0.9.0DevからOSG配布の OpenSimバイナリにバージョンアップするスクリプトを公開します。

旧のOpenSimがあるフォルダを例えば /opt/OpenSim/0.9.0Dev-jog とします。

OSG用のフォルダ /opt/opensim.opensim-0.9.1-06-jog を作り、そこで OSGの opensim*.zipを展開します。

次のスクリプトをを実行します。SRCとDESTは環境に合わせてください。

#!/bin/sh
SRC=/opt/opensim/OpenSim-0.9.0Dev-jog
DEST=/opt/opensim/opensim-0.9.1-06-jog
[ -d $DEST/bin ] || exit 1
cp -vf $SRC/bin/*.db $SRC/bin/OpenSim.ini  $SRC/bin/OpenSim.exe.config $DEST/bin
cp -vf $SRC/bin/Regions/*.ini $DEST/bin/Regions
cp -vf $SRC/bin/config-include/*Common.ini $DEST/bin/config-include

# JOG stuff
cp -vf $SRC/bin/{Messaging.NSLMuteList.dll,OpenSimProfile.Modules.dll,OpenSimSearch.Modules.dll} $DEST/bin
cp -vf $SRC/bin/config-include/{FlotsamCache.ini,GridCommon.ini,GridHypergrid.ini} $DEST/bin/config-include

echo "Files copied."
 
Shinobar Martinek への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- Xpyoda Janus の投稿

スクリプトありがとうございます。

# JOG stuffのところは参考になります。この、JOG stuffのところを自前でコンパイルしてみようとしたりします。設定ファイルも、OpenSim-0.9.0Devから、丸コピーすればいけるんだろうなぁと思ってます。先週からあまり時間がとれずに、まだ、ちゃんと試せてない...www。

# 以下は、ほとんど独り言。
Firestormで、自分のプロフィールを表示してみると、一瞬自分のプロフィール画像が表示されたかとおもうと、すぐに表示されなくなります。ひょっとしたら、OSGridのプロフィールモジュールの設定も残ってて、悪さをしてるのかもしれません。まあ、時間取ってみてみないと...です。

Xpyoda Janus への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- Shinobar Martinek の投稿

JOG Stuff のところで、ひとつ抜けていました。OpenSim.Modules.Currency.dll です。

このモジュールは本来(JOG独自の)マネーサーバと通信するためのもので、マネーサーバに接続しないならば必要ありません。また opensim-0.8用に作られたものが 0.9系では不都合あったために、外しておりました。しかし JOG配布の 0.9.0Dev に同梱されているものは opensim-0.9系でちゃんと動作します。

マネーサーバに接続しないSIMで、このモジュールがあると無いとでどこが違うかというと、ビューアーの所持金の表示だけです。マネーサーバに接続している Dejimaと、接続しない Shinobar Annexとを往還する場合で説明します。

Dejimaに(JOGアバタでもHGアバタでも同じ)アバタが入ると何がしかの所持金が表示され、これで Dejimaで買い物ができます。マネーサーバに接続しない Shinobar Annexなどに移動すると、所持金は 0 となるはずです。ここで Shinobar Annexに OpenSim.Modules.Currency.dll があると、ビューアーの所持金表示も 0となりますが、このモジュールが無いとビューアーの所持金表示は Dejimaのときの表示から変化しません。ビューアーの表示では何がしかの所持金があることになります。しかしもし Shinobar Annexに JP1 の商品があったとして、それを購入することはできません。JP0 の商品は購入できます。つまりビューアーの表示に所持金があるように見えても、じっさいは所持金0とおなじです。

マネーサーバに接続しないSIMで、このモジュールがあると無いとで、商品の購入に関しては同じです。このモジュールがあっても無くても、実用上問題はありませんが、ビューアーの所持金表示に関してしてはこのモジュールを含めるほうがきれいです。

さきのスクリプトの JOG Stuff に関する部分の修正を以下に示します。すでに以前のスクリプトで移行済みの方は、手動で JOG配布の 0.9.0Devの中から bin/OpenSim.Modules.Currency.dll を見付け、新しい OSGの bin ディレクトリの中にコピーしてください。

# JOG stuff
cp -vf $SRC/bin/{Messaging.NSLMuteList.dll,OpenSimProfile.Modules.dll,OpenSimSearch.Modules.dll,OpenSim.Modules.Currency.dll} $DEST/bin
cp -vf $SRC/bin/config-include/{FlotsamCache.ini,GridCommon.ini,GridHypergrid.ini} $DEST/bin/config-include

Shinobar Martinek への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- XENLON Keng の投稿

いつも参考にさせていただいてありがとうございます。しのさんのスクリプトを使用させていただきJOGバイナリからOSG用のOsgrid Opensimlator 0.9.1.dev 07-23-2017を使用してSIMを立ち上げました。僕の不具合はアバターがアニメーションの無効状態(ダンスやAOが無効)だと足がピクピクと動き続けることです。OSはUbuntu16.04 LTS 32bit SERVERでMonoのヴァージョンは4.4です。5.1.1はエラーでログが真っ赤になり止まってしまうので戻しました。僕のSIM固有のバグなのでしょうかねえ?DBはSQL Liteのまま使っています。

Shinobar Martinek への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- teddy Dragoone の投稿
Ubuntu 16.04 でmonoのバージョンを5.12.0.226にして、シミュレータは公式の0.9.0.0を稼動させていますが、
JOGのHG接続をする際に、JOG配布の 0.9.0Devに含まれるOpenSim.Modules.Currency.dllをコピーしてロードさせると途中でハングアップして立ち上がりません。
Messaging.NSLMuteList.dll
OpenSimProfile.Modules.dll
OpenSimSearch.Modules.dll
の3つは読み込み可能です。

なのでOpenSim.Modules.Currency.dllは外しています。
teddy Dragoone への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- 堀田 海月 の投稿

まだ断定はできませんが、ソースを持ってきて最新monoでビルドすると諸症状が発生しないようですので(足のプルプルも治った)、ビルドに使ったmonoと運用のmonoの相性のような気がします。配布バイナリーを利用するならmonoのバージョンを下げるとかしないといけないのかもしれませんね。

堀田 海月 への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- Shinobar Martinek の投稿

「JOG配布の 0.9.0Dev に同梱されているものは opensim-0.9系でちゃんと動作します。」と先に書きましたが、バージョンに依存するようです。

JOGのマネーサーバーに接続しないのであれば、OpenSim.Modules.Currency.dll を削除しても実用上の問題はありません。先に書いたように、ビューアーの所持JPの表示が多少ヘンなだけです。

堀田 海月 への返信

Re: OSG配布のOpenSimバイナリをJOGで使う方法

- teddy Dragoone の投稿
もともとUbuntu16.04ではmonoのバージョンは4.2.1だったのですが、Robustやシミュレータのメモリリークがバージョン上げたらマシになったと聞いたので、monoのバージョンをあげてみたしだいです。
でも実際にバージョンあげてからてでぐりやJOGにHG接続しているサーバのメモリ状況を見ていてもあまり前と変わってないというのが実情です。
いまは1時間ごとにキャッシュをクリアしてて、Robustも3時間おきに再起動するようにしています。
というわけで、最新monoでのビルドよろしくお願いしますw
Shinobar Martinek への返信

Re: OSGや本家配布のOpenSimバイナリをJOGで使う方法

- Shinobar Martinek の投稿

前記事で公開したスクリプトはシェルのバージョンにより動作しないことがあります。修正したものをアップしました。

最近のバージョンの mono でJOG配布の OpenSim-0.9.0Dev バイナリが動かないということです。スクリプトにより opensim本家が公式配布の opensim-0.9.0.1 Release を使ってJOGに接続することができます。

http://shino.pos.to/secondlife/blog/?viewDetailed=00025