宿を開けないバグが発生

Issue #1068 resolved
ありんどう created an issue

【不具合の内容】

自作の宿が開けなくなり、バグで動作が停止して添付ファイルのような表示が出てきて操作不能となります。

最小化、閉じるは使えますが、閉じた場合は「CardWirthPyの実行中にエラーが発生しました。CardWirthPy.exe.logの内容を開発者までお知らせ下さい」という小さなウインドウが開きます。

【不具合の再現方法】

自分で作成した宿を選んで決定ボタンを押すとバグで動作が停止します。

【エラーログ】

Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 11:14:45
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 926, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2609, in func
File ".\cw\thread.py", line 2851, in _f9impl
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 14:56:40
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 14:57:20
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 15:05:12
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 15:21:32
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2385, in set_yado
File ".\cw\thread.py", line 489, in update_skin
File ".\cw\data.py", line 293, in update_skin
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 15:23:20
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2385, in set_yado
File ".\cw\thread.py", line 489, in update_skin
File ".\cw\data.py", line 293, in update_skin
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 20:13:46
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 20:15:50
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


Version : 4.3 (64-bit) / 2020-04-12 13:36:33
DateTime: 2021-12-04 20:23:04
Traceback (most recent call last):
File ".\cw\thread.py", line 863, in run
File ".\cw\thread.py", line 915, in _run
File ".\cw\thread.py", line 931, in main_loop
File ".\cw\eventhandler.py", line 129, in run
File ".\cw\eventhandler.py", line 832, in executing_event
File ".\cw\thread.py", line 2351, in set_yado
File ".\cw\data.py", line 241, in load_variables
File ".\cw\data.py", line 257, in _load_variables
File ".\cw\data.py", line 2346, in value_from_str
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

【再現環境】

OS ……Windows10

メモリ……実装RAM8GB

HDDか、SSDか……HDD

空き容量……737GB

CardWirthPyのビルド情報 ……CardWirthPy 4.3 (64-bit) Build: 2020-04-12 13:36:33

その他……宿のスキンはNostalgic Py5となっています

【再現率】

同じ宿を決定ボタンで開こうとすると100%エラーが出ます。

【調査のチェックリスト】

試しに違う宿を作成してみたところ、ひとつ依頼を受けてセーブをした後再度Pyを起動するとエラーは発生しませんでした。

エラーが発生したのは自作の連れ込みシナリオで連れ込みPCを使ってプレイしたため、それが関係ある可能性があります。

そのPC達を使用してプレイ自体は可能でしたが、セーブしてPyを起動しようとしたところ上記のバグが発生しました。

上記の宿を削除してもう一度同じ条件で別のシナリオをプレイした後セーブして再度起動したところ、同じバグが発生しています(通常作成PCだと発生しない)。

Comments (18)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。ご迷惑をおかけして申し訳ありません。

    #1067と同一の問題でよろしいでしょうか。

    エラーログとスキン名を見たところ、CWPy 4.3に対してCWPy 5.0用のスキンが使用されているように見えます。当該スキンをいったんSkinフォルダから取り除くか、5.0β版を導入しても動かないかどうか試していただけないでしょうか?

  2. ありんどう reporter

    怪盗ありがとうございます。

    #1067と同一の問題でよろしいでしょうか。

    はい、その通りです。こちらのミスでログインせずに課題を出してしまった次第です。

    申し訳ありませんが、該当課題は削除していただけると幸いです。

    >エラーログとスキン名を見たところ、CWPy 4.3に対してCWPy 5.0用のスキンが使用されているように見えます。当該スキンをいったんSkinフォルダから取り除くか、5.0β版を導入しても動かないかどうか試していただけないでしょうか?

    まず5.0β版を導入してから宿を開こうとしたところ、同じようにエラーが出て動かなくなり、改善の兆しは見られませんでした。

    しかしスキンを別のものに設定してみたところ、エラーは発生せずプレイ出来るようになりました。

    また、試しに宿のメニュー画面で再度CWPy 5.0用のスキンに変更してみたところ、同じエラーが起きて動作が停止したことを報告します。

  3. k4nagatsuki repo owner

    ありがとうございます。

    5.0βのエラーログを見せていただけないでしょうか。

  4. ありんどう reporter

    了解しました。以下、上記より後のログとなります。

    Version : 4.3 (64-bit) / 2020-04-12 13:36:33
    DateTime: 2021-12-04 21:00:22
    Traceback (most recent call last):
    File ".\cw\thread.py", line 863, in run
    File ".\cw\thread.py", line 915, in _run
    File ".\cw\thread.py", line 931, in main_loop
    File ".\cw\eventhandler.py", line 129, in run
    File ".\cw\eventhandler.py", line 832, in executing_event
    File ".\cw\thread.py", line 2351, in set_yado
    File ".\cw\data.py", line 241, in load_variables
    File ".\cw\data.py", line 257, in _load_variables
    File ".\cw\data.py", line 2346, in value_from_str
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


    Version : 4.3 (64-bit) / 2020-04-12 13:36:33
    DateTime: 2021-12-04 21:03:28
    Traceback (most recent call last):
    File ".\cw\thread.py", line 863, in run
    File ".\cw\thread.py", line 915, in _run
    File ".\cw\thread.py", line 931, in main_loop
    File ".\cw\eventhandler.py", line 129, in run
    File ".\cw\eventhandler.py", line 832, in executing_event
    File ".\cw\thread.py", line 2351, in set_yado
    File ".\cw\data.py", line 241, in load_variables
    File ".\cw\data.py", line 257, in _load_variables
    File ".\cw\data.py", line 2346, in value_from_str
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


    Version : 4.3 (64-bit) / 2020-04-12 13:36:33
    DateTime: 2021-12-04 21:05:16
    Traceback (most recent call last):
    File ".\cw\thread.py", line 863, in run
    File ".\cw\thread.py", line 915, in _run
    File ".\cw\thread.py", line 931, in main_loop
    File ".\cw\eventhandler.py", line 129, in run
    File ".\cw\eventhandler.py", line 832, in executing_event
    File ".\cw\thread.py", line 2351, in set_yado
    File ".\cw\data.py", line 241, in load_variables
    File ".\cw\data.py", line 257, in _load_variables
    File ".\cw\data.py", line 2346, in value_from_str
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


    Version : 5.0 Beta 4 (64-bit) / 2021-10-24 11:18:53
    DateTime: 2021-12-04 22:41:43
    Traceback (most recent call last):
    File ".\cw\thread.py", line 981, in run
    File ".\cw\thread.py", line 1034, in _run
    File ".\cw\thread.py", line 1050, in main_loop
    File ".\cw\eventhandler.py", line 131, in run
    File ".\cw\eventhandler.py", line 857, in executing_event
    File ".\cw\thread.py", line 2660, in set_yado
    File ".\cw\data.py", line 276, in load_variables
    File ".\cw\data.py", line 297, in _load_variables
    File ".\cw\data.py", line 2519, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


    Version : 5.0 Beta 4 (64-bit) / 2021-10-24 11:18:53
    DateTime: 2021-12-04 22:43:51
    Traceback (most recent call last):
    File ".\cw\thread.py", line 981, in run
    File ".\cw\thread.py", line 1034, in _run
    File ".\cw\thread.py", line 1050, in main_loop
    File ".\cw\eventhandler.py", line 131, in run
    File ".\cw\eventhandler.py", line 857, in executing_event
    File ".\cw\thread.py", line 2694, in set_yado
    File ".\cw\thread.py", line 582, in update_skin
    File ".\cw\data.py", line 334, in update_skin
    File ".\cw\data.py", line 276, in load_variables
    File ".\cw\data.py", line 297, in _load_variables
    File ".\cw\data.py", line 2519, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]


    Version : 5.0 Beta 4 (64-bit) / 2021-10-24 11:18:53
    DateTime: 2021-12-04 22:47:03
    Traceback (most recent call last):
    File ".\cw\thread.py", line 981, in run
    File ".\cw\thread.py", line 1034, in _run
    File ".\cw\thread.py", line 1050, in main_loop
    File ".\cw\eventhandler.py", line 114, in run
    File ".\cw\eventhandler.py", line 399, in lclick_event
    File ".\cw\sprite\statusbar.py", line 1443, in lclick_event
    File ".\cw\eventhandler.py", line 578, in f2key_event
    File ".\cw\thread.py", line 2060, in call_modaldlg
    File ".\cw\thread.py", line 1050, in main_loop
    File ".\cw\eventhandler.py", line 131, in run
    File ".\cw\eventhandler.py", line 857, in executing_event
    File ".\cw\thread.py", line 582, in update_skin
    File ".\cw\data.py", line 334, in update_skin
    File ".\cw\data.py", line 276, in load_variables
    File ".\cw\data.py", line 297, in _load_variables
    File ".\cw\data.py", line 2519, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

  5. ありんどう reporter

    提示されたバージョンを使ってエラーを出したところ、以下のようなログ内容となったため報告します。

    Version : 5.0 Beta 4 (64-bit) / 2021-12-05 00:08:26
    DateTime: 2021-12-05 00:11:43
    number value: 0
    number value: 0
    number value: 0
    number value: 0
    number value: 0
    number value: 0
    number value: 7
    number value: 15
    number value: 0
    number value: 0
    number value: 5
    number value: 3
    number value: 42
    number value: 0
    しない
    シナリオ終了
    チーム-宿
    チーム-宿 (2)
    テストコモン1
    number value: 42
    テストコモン2
    テストコモン3
    名称
    済印
    番号
    number value: 0


    Version : 5.0 Beta 4 (64-bit) / 2021-12-05 00:08:26
    DateTime: 2021-12-05 06:33:50
    number value: 0
    number value: 0

    DateTime: 2021-12-05 06:34:16
    number value: 0
    number value: 0

    DateTime: 2021-12-05 06:35:41
    number value: 1000
    number value: 1
    number value: 1
    number value: 0
    number value: 0
    number value: 0
    number value: 1
    number value: 0
    number value: 1000
    number value: 10
    number value: 0
    number value: 0
    number value: 2
    number value: 1
    Title
    T\C1
    T\C2
    T\C3
    T\C4
    T\C5
    T\C6
    T\W1
    T\W2
    T\W3
    T\W4
    T\W5
    T\W6
    T\PO1
    T\PO2
    T\PO3
    T\PO4
    T\PO5
    T\PO6
    T\P1
    T\P2
    T\P3
    T\P4
    T\P5
    T\P6
    T\SP1
    T\SP2
    T\SP3
    T\SP4
    T\SP5
    T\SP6
    Select
    Select_
    T\V1
    T\V2
    T\V3
    T\V4
    T\V5
    T\V6
    T\T1
    T\T2
    T\T3
    T\T4
    T\T5
    T\T6
    year
    number value: 1000
    month
    number value: 1
    week
    number value: 2
    year+
    number value: 0
    month+
    number value: 0
    week+
    number value: 0
    yado_n_lv
    number value: 1
    yado_n_exp
    number value: 1
    yado_n_exp_border
    number value: 1000
    yado_n_next
    number value: 10
    yado_n_pt
    number value: 0
    yado_money
    number value: 0
    YadoTime
    Place
    number value: 2
    Battle_Voice
    Battle_Efect
    System_Voice
    number value: O N
    Traceback (most recent call last):
    File ".\cw\thread.py", line 981, in run
    File ".\cw\thread.py", line 1034, in _run
    File ".\cw\thread.py", line 1050, in main_loop
    File ".\cw\eventhandler.py", line 131, in run
    File ".\cw\eventhandler.py", line 857, in executing_event
    File ".\cw\thread.py", line 3380, in set_scenario
    File ".\cw\thread.py", line 2727, in set_scenario
    File ".\cw\thread.py", line 582, in update_skin
    File ".\cw\data.py", line 335, in update_skin
    File ".\cw\data.py", line 276, in load_variables
    File ".\cw\data.py", line 298, in _load_variables
    File ".\cw\data.py", line 2521, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

  6. k4nagatsuki repo owner

    pull request #316

    スキンに付属するSystem_Voiceというコモンの値が数値と指定されているにもかかわらずO Nという値になっているようです。

    なぜこういう壊れたデータが書き込まれたのかよくわからないのですが、CWPy 4.3でCWPy 5用の当該スキンを使用すると実際にこの現象が発生するようです。一度発生した状態でセーブすると壊れたデータが宿へ書き込まれるため、5.0で読み込んでもエラーが発生するようになります。

    事故で作られうる異常なデータが原因で宿が開けなくなるのは好ましくないので、そのようなデータがあった場合はエラーダイアログを出して値を無視するようにしました。以下のバージョンを5βの方に上書きしてお試しください。

    https://drive.google.com/file/d/1Vs5gF6oYd5rB2dvArHYiu8pROybdjabo/view?usp=sharing

    とりあえず今回のSystem_Voiceの問題に関しては、これで解決できると思います。

  7. ありんどう reporter

    指定されたバージョンを上書きした後にNostalgicPy5をスキンに設定した宿を開こうとしたところ、以下のイメージのようなエラーメッセージが現れました。

    しかしメッセージを閉じた後は通常通り宿を開けるようになっていました。

    また、この後Pyそのものを閉じてみると、最初に相談した時のように「CardWirthPyの実行中にエラーが発生しました。CardWirthPy.exe.logの内容を開発者までお知らせ下さい」という小さなウインドウが開きました。

    その後再びPyをNostalgicPy5で開くと、通常通りの動作が出来るようになりました。エラーメッセージも以降出なくなっています。

    他にはスキンを違うものに変更してから再度戻したり、シナリオを選択してF9を押したりしてみましたが、不具合が出てくる様子はありませんでした。

    恐らくバグは発生しなくなったものと思われます。

    ログ内容は以下の通りです。

    Version : 5.0 Beta 4 (64-bit) / 2021-12-05 09:51:17
    DateTime: 2021-12-05 20:33:42
    Traceback (most recent call last):
    File ".\cw\data.py", line 298, in _load_variables
    File ".\cw\data.py", line 2528, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

    コモン「System_Voice」の値が正しくありません。
    このエラーが発生した場合、誤って使用中のCardWirthPyのバージョンに対応していないシナリオやスキンを使用したか、シナリオやスキンに手動で編集したことによる不具合が発生している可能性があります。
    いずれにも該当していない場合はCardWirthPyの開発者へお知らせください。


    Version : 5.0 Beta 4 (64-bit) / 2021-12-05 09:51:17
    DateTime: 2021-12-05 20:36:49
    Traceback (most recent call last):
    File ".\cw\data.py", line 298, in _load_variables
    File ".\cw\data.py", line 2528, in value_from_element
    decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

    コモン「System_Voice」の値が正しくありません。
    このエラーが発生した場合、誤って使用中のCardWirthPyのバージョンに対応していないシナリオやスキンを使用したか、シナリオやスキンに手動で編集したことによる不具合が発生している可能性があります。
    いずれにも該当していない場合はCardWirthPyの開発者へお知らせください。

  8. k4nagatsuki repo owner

    そのメッセージとログは意図通りですね。それが出た時点で該当する変数の値が初期化されるため、セーブすれば問題はなくなります。

    スキンの構造によっては連動して動く複数の変数の一部だけがリセットされる事で別の不具合が発生する可能性もありますが、このSystem_Voiceについてはその心配はないように思われます(システム音声のオンオフを格納するだけのもののようです)。

  9. ありんどう reporter

    これまでのバグの対応ありがとうございました。そしてお疲れ様です。

    こちらはもう問題ないと思われますが、解決という形でよろしいでしょうか。

  10. k4nagatsuki repo owner

    こちらこそありがとうございます。

    よろしければ右上の解決ボタンを押してください(解決コメントを書けますが空欄でいいです)。

  11. ありんどう reporter

    それではこれにて解決とさせていただきます。

    改めて、対応ありがとうございました。

  12. Log in to comment