バグ: キャラクター及びシナリオ選択ダイアログでランタイムエラー
いずれも再現できていません。
wxPython側で何か問題が起きて強制終了し、そのためpygame側がエラーログを残しているように見えます(そのため、エラーログは本当の問題箇所を示していません)。
元日にPythonのアップデートを行ったので、案外そのためかもしれません。
Comments (9)
-
-
reporter 一覧表示でクリックを行った時には、(1)クリックした位置のindexを計算 (2)宿帳上のメンバ数によってindexを修正 (3)現在選択中のindexと異なっていれば音を鳴らす (4)indexを上書きする という動作を行うのですが、この(3)と(2)が入れ替わっていたバグを修正した記憶があります。音が鳴らなくなったのはそのためですが、しかしそれでエラーが発生しなくなるのはちょっと考えづらいです。
どちらかというと、issue
#302でご報告をいただいた時に、メンバを決定した時にメンバリストが空だったら何もしないようにするというチェック処理を追加したのがよかったのかもしれません。設計上はリストが空の時はメンバ決定動作自体が発生しないはずなのですが、なんらかのバグで発生してしまっていた事はありえます。お手数をおかけして申し訳ありませんが、また発生した場合は、状況をお知らせください。
-
久しぶりにランタイムエラーが出て強制終了しました。 「暗黒街ペテンザム」というシナリオから帰還してキャラを一人外して宿帳で別のキャラを加入させ、キャラ情報ダイアログを開き、閉じ、メイン画面にフォーカスが移ったタイミングだったはずです。 エラーの種類が少し違うので、もしかすると表題とは別件かもしれません。
Version : 0.12.4 Alpha 5 / 2016-03-06 21:42:12 DateTime: 2016-03-07 15:04:54 Traceback (most recent call last): File "cw\thread.pyo", line 656, in run File "cw\thread.pyo", line 686, in _run File "cw\thread.pyo", line 699, in main_loop File "cw\thread.pyo", line 1039, in draw error: display Surface quit
-
reporter ご迷惑をお掛けして申し訳ありません。
たしかにエラーは異なりますが、SDLの画像システムが強制終了したような状態になっているという意味は同じだと思います。そしてこれらのエラーはwx側で何かを壊してしまった時に(一つのコントロールを二重に配置してしまうとか)そこそこの確率で発生するのを見たことがあります。状況からして、たぶん原因はwx側にあるのでしょう。
これがCWPyのコード側のミスだとすると、もっと高い確率で発生してもよさそうなものなのですがそうではありませんし、私の環境ではこの手のエラーはしばらく発生していません(過去に発生したものは原因箇所を見つけて修正済み)。環境固有の問題なのでしょうか? 他にこの手のエラーを見かけた方は状況と環境を教えていただけるとありがたいです。
-
音沙汰なくてすいません。 あまりにも頻度が低いので色々考えた結果、ランタイムエラーが出る時、再起動した直後とスキンの編集を直近でしていた場合が多いので、もしかしたら自分の人為的なミスかとも思ってしばらく発生しないならクローズをお願いしようと思っていたのですが、数日前にスキンの編集をしていないのに近似のエラーが出て白紙に戻ってしまったという感じです。
宿でPCのカード操作ダイアログを開いている状態、右クリックでサブウインドウを閉じた直後 ほぼ同時に左→右クリックでランタイムエラーが出ました。 Version : 0.12.4 Alpha 5 / 2016-03-27 20:55:44 DateTime: 2016-03-28 16:40:42 Traceback (most recent call last): File "cw\thread.pyo", line 687, in run File "cw\thread.pyo", line 717, in _run File "cw\thread.pyo", line 725, in main_loop File "cw\thread.pyo", line 847, in input error: video system not initialized その後マウスの複雑な操作が原因かと思ってカチカチやっていたら ランタイムエラーは出なかったのですが、 終了時多分別種のエラーログが出力されていました。 Traceback (most recent call last): File "cw\frame.pyo", line 1207, in FilterEvent File "wx\_core.pyo", line 4987, in GetEventType wx._core.PyAssertionError: C++ assertion "Assert failure" failed at ..\..\src\common\wincmn.cpp(3346) in DoNotifyWindowAboutCaptureLost(): window that captured the mouse didn't process wxEVT_MOUSE_CAPTURE_LOST Traceback (most recent call last): File "cw\frame.pyo", line 1207, in FilterEvent File "wx\_core.pyo", line 4987, in GetEventType wx._core.PyAssertionError: C++ assertion "Assert failure" failed at ..\..\src\common\wincmn.cpp(3346) in DoNotifyWindowAboutCaptureLost(): window that captured the mouse didn't process wxEVT_MOUSE_CAPTURE_LOST
-
reporter 昨日直したのですが(2cc712d)、linux環境で
wx.ClientDC
を使用している箇所でwxPythonがぶっ壊れたので、それの関連かなぁ……と一瞬思ったのですが、よく考えるとWindowsとlinux(GTK)では全然中身が違いますね。いずれにせよwxPythonのバグでエラーが起きる事は結構あるようです。アサーションエラーなどは本来はライブラリのユーザが目にしてはいけないものです。ライブラリのアップデートで直るかもしれません……が、まだ次のリリースは出ていないようです。FilterEvent
内で発生しているエラーは、ダイアログ上で他のエラーが発生した後に起きる事があるようです。却ってFilterEvent
で起きた問題が他に波及しているという可能性もあるかもしれません。 -
メイン環境にXP32bitがなくなってしまい(ライセンスはあるのですがまず使わなそう) 今後は再現困難かと思いますのでこの課題は一旦クローズして頂いて問題ないかと思います。 原因を特定できず面目ないです。
-
reporter 了解しました。この問題は保留としてクローズさせていただきます。
たぶんこれは、wxPythonの更新によって自然に解消するか、XPが使われなくなる事によって問題が消滅するか、で自然に消えて無くなる問題……だといいのですが。
-
reporter - changed status to on hold
保留としてクローズします。
こちらこそ問題を解決できず申し訳ないです。
- Log in to comment
前者、キャラクター選択ダイアログについて、最初の発生は元旦以前に確認(タイミングは同じ)していたような気がします。
以前は誰も居ない宿帳の空白をクリックすることでクリック.wavが鳴っていたのですが、それが鳴らなくなりましたし、完全に解決した気持ちになっていました。が、何分発生頻度が低いのでとにかくシナリオをプレイしつつ様子を見るのがいいのでしょうね…再現することがあったらお知らせします。