2008年09月23日
麻雀卓不具合
麻雀卓をmonoでコンパイルしているのですが、一部のスクリプトがランタイムエ
ラーを起こす場合があります。今のところ、特定のスクリプトで発生している感
じなので、当該のスクリプトのみを LSL2 でコンパイルするようにしてみました。
麻雀卓でこのエラーが発生して困っている方は、Chiyosuke WiseまでIMするか、
Kandaの麻雀販売店のアップデータにタッチして、上記の一部のみLSL2でコンパイル
したバージョンを入手してください。

■エラーの説明
**** [script:majan_sutehai_state]: Script run-time error
[22:33] Mahjong V9.12 **** [script:majan_sutehai_state]: System.Runtime.Serialization.SerializationException: serializationStream supports seeking, but its length is 0
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000]
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] object_data) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] class_data, System.Byte[] object_data) [0x00000]
この問題は、すでにJIRAに載っていました。
http://jira.secondlife.com/browse/SVC-2908
どうやら、スクリプトがデシリアライズする際に、エラーが発生するようです。
シリアライズとは、一般に、オブジェクトの内部状態をビット列に変換し、外部
のファイルに保存する事をさし、デシリアライズはその逆にビット列から内部
状態を復元する処理を指します。
おそらく、スクリプトの内部状態がリンデン側のデータベースに保存され、
rezされたり、simがリスタートした際などにデータベースに保存されたビット列
からオブジェクトの内部状態を復元する際に、うまくいっていないのではないか、
と推測されています。
記事を追うと、スクリプトをリセットするだけでは解決せず、スクリプトをソース
からコンパイルし直して初めて解決するようです。
ラーを起こす場合があります。今のところ、特定のスクリプトで発生している感
じなので、当該のスクリプトのみを LSL2 でコンパイルするようにしてみました。
麻雀卓でこのエラーが発生して困っている方は、Chiyosuke WiseまでIMするか、
Kandaの麻雀販売店のアップデータにタッチして、上記の一部のみLSL2でコンパイル
したバージョンを入手してください。

■エラーの説明
**** [script:majan_sutehai_state]: Script run-time error
[22:33] Mahjong V9.12 **** [script:majan_sutehai_state]: System.Runtime.Serialization.SerializationException: serializationStream supports seeking, but its length is 0
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000]
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] object_data) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] class_data, System.Byte[] object_data) [0x00000]
この問題は、すでにJIRAに載っていました。
http://jira.secondlife.com/browse/SVC-2908
どうやら、スクリプトがデシリアライズする際に、エラーが発生するようです。
シリアライズとは、一般に、オブジェクトの内部状態をビット列に変換し、外部
のファイルに保存する事をさし、デシリアライズはその逆にビット列から内部
状態を復元する処理を指します。
おそらく、スクリプトの内部状態がリンデン側のデータベースに保存され、
rezされたり、simがリスタートした際などにデータベースに保存されたビット列
からオブジェクトの内部状態を復元する際に、うまくいっていないのではないか、
と推測されています。
記事を追うと、スクリプトをリセットするだけでは解決せず、スクリプトをソース
からコンパイルし直して初めて解決するようです。
Posted by Chiyosuke Wise at 22:01│Comments(2)
│麻雀
この記事へのコメント
いつもありがとうございますー。
報告はこちらでいいのかな、、、
変わったパターンが出たのでとりあえずごほうこくー。
LSL+mono台です。
始動後、一人目はツモって切れるけど次の人にすすまないというもの。
再REZ後のメッセージは以下のトオリデス
[5:01] Mahjong V9.12 [script:majan_sutehai_check_state]: Script run-time error
[5:01] Mahjong V9.12 [script:majan_sutehai_check_state]: System.Runtime.Serialization.SerializationException: serializationStream supports seeking, but its length is 0
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000]
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] object_data) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] class_data, System.Byte[] object_data) [0x00000]
別卓を設置でたいおうしましたー
参考になればさいわいですー
報告はこちらでいいのかな、、、
変わったパターンが出たのでとりあえずごほうこくー。
LSL+mono台です。
始動後、一人目はツモって切れるけど次の人にすすまないというもの。
再REZ後のメッセージは以下のトオリデス
[5:01] Mahjong V9.12 [script:majan_sutehai_check_state]: Script run-time error
[5:01] Mahjong V9.12 [script:majan_sutehai_check_state]: System.Runtime.Serialization.SerializationException: serializationStream supports seeking, but its length is 0
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000]
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] object_data) [0x00000]
at LindenLab.SecondLife.Script.Deserialize (System.Byte[] class_data, System.Byte[] object_data) [0x00000]
別卓を設置でたいおうしましたー
参考になればさいわいですー
Posted by pcworks kidd at 2008年09月25日 21:37
情報有り難うございます。
同じ原因で不具合が発生している感じです。Lindenのwikiをみると、βサーバでは、9月23日に、Server 1.24.6 (97433) で、この不具合(SVC-2908)に関して、修正が入っているようです。
http://wiki.secondlife.com/wiki/Release_Notes/Second_Life_Beta_Server/1.24
今日(9月27日)、通常サーバのバージョンを見てみたら、バージョンがServer 1.24.6 (97433)になっていたので、もしかしたら直っているかもと期待していたのですが、25日に問題が発生して居るとなると、まだ通常サーバ(やβでも?)ではmonoの不具合なおっていないのかもしれません。
同じ原因で不具合が発生している感じです。Lindenのwikiをみると、βサーバでは、9月23日に、Server 1.24.6 (97433) で、この不具合(SVC-2908)に関して、修正が入っているようです。
http://wiki.secondlife.com/wiki/Release_Notes/Second_Life_Beta_Server/1.24
今日(9月27日)、通常サーバのバージョンを見てみたら、バージョンがServer 1.24.6 (97433)になっていたので、もしかしたら直っているかもと期待していたのですが、25日に問題が発生して居るとなると、まだ通常サーバ(やβでも?)ではmonoの不具合なおっていないのかもしれません。
Posted by Chiyosuke Wise at 2008年09月28日 00:27