バグ:ファイルタブでスクロールバーを勢いよく移動させようとすると高頻度で応答不能になる

Issue #95 resolved
暗黒 騎士 created an issue

ファイルタブでスクロールバーを一気に上下しようとすると砂時計になり、応答不能になります。 ゆっくりだとなぜか大丈夫です。

Build: 2016-04-16 00:28:43 Debug (32-bit)

展開されたWSN形式、フォルダ直下にpng44ファイル、txt1ファイル、5フォルダある状況で安定再現します。

Comments (14)

  1. 暗黒 騎士 reporter
    2016-04-16 18:10:49 [Build: 2016-04-16 00:28:43 Debug (32-bit)] cwx\utils.d:131 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-2398, 2398
    cwx\editor\gui\dwt\mainwindow.d-mixin-2400, 2400
    cwx\editor\gui\dwt\dskin.d-mixin-46, 46
    cwx\editor\gui\dwt\dskin.d-mixin-70, 70
    cwx\skin.d-mixin-144, 144
    cwx\skin.d-mixin-153, 153
    cwx\skin.d-mixin-156, 156
    cwx\skin.d-mixin-157, 157
    cwx\skin.d-mixin-158, 158
    cwx\skin.d-mixin-163, 163
    cwx\skin.d-mixin-376, 376
    cwx\skin.d-mixin-378, 378
    cwx\skin.d-mixin-1451, 1451
    cwx\skin.d-mixin-1452, 1452
    cwx\xml.d-mixin-109, 109
    cwx\xml.d-mixin-110, 110
    cwx\skin.d-mixin-1468, 1468
    cwx\xml.d-mixin-109, 109
    cwx\xml.d-mixin-110, 110
    cwx\skin.d-mixin-1469, 1469
    cwx\race.d-mixin-28, 28
    cwx\xml.d-mixin-109, 109
    cwx\xml.d-mixin-110, 110
    cwx\race.d-mixin-340, 340
    cwx\xml.d-mixin-109, 109
    cwx\xml.d-mixin-110, 110
    cwx\race.d-mixin-342, 342
    cwx\utils.d-mixin-1243, 1243
    2016-04-16 18:10:49 [Build: 2016-04-16 00:28:43 Debug (32-bit)] cwx\skin.d:1519 CardWirthPy\Data\Skin\Blood\Skin.xml
    2016-04-16 18:10:49 [Build: 2016-04-16 00:28:43 Debug (32-bit)] cwx\skin.d:1520 [Not bool: true] cwx\utils.d, 1250: 0x005A9847
    0x00ED5701
    0x00FFE804
    0x00ED561B
    0x00ED6A90
    0x00FFE804
    0x00ED6948
    0x00597777
    0x00FFE804
    0x005976AC
    0x00FFE804
    0x00596F94
    0x0058BBF8
    0x00589196
    0x00A878E1
    0x00A87214
    0x008347D7
    0x00D7E923
    0x011AFD37
    0x011AFCFB
    0x011AFBFC
    0x00D7EA08
    0x011E8FE9
    0x7C816037 in CreateActCtxW
    

    スキンのエラーが出ている?感じでこちらの不手際だったらすいません。Bloodは制作中のスキン名です。

  2. k4nagatsuki repo owner

    ありがとうございます。これはライブラリの問題かもしれません。問題を発生させそうなフラグを落としたバージョンを作ってみたので、これで試していただけないでしょうか。失敗したらまた改めて考えなければなりません。

    https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_test_20160416a.zip

    スキンのエラーは、たぶん関係ないかと思います。エラーと認識したデータが正常にエラーになり、その部分のデータが無視されているはずです。CWPyにおけるXMLの真偽値はTrueFalseが基本で、cwxeditorはそれしか受け付けないようにしています。が、よくCWPyのコードを見れば大文字だろうが小文字だろうが関係なく、01まで受け付けるようなので、これを期にcwxeditorの方でもそれを受け付けるようにします。

  3. 暗黒 騎士 reporter

    応答不能になるのを確認しました。

    応答不能になるのは昨日の件もそうだったので、またTTBaseと衝突してるのかなと閉じてみたところ(衝突する機能はないはずなのですが…) 4秒ぐらいフリーズしているものの応答なしにはならなくなりました。うーん? まぁ、これぐらいだったら大丈夫っぽいので保留でも構わないかと思います。

    あ、なるほど。大文字にすればよかったんですね。ご教示感謝です。

  4. 暗黒 騎士 reporter

    ペインの位置はなぜか左下のみで再現するようです。他の位置だと全くフリーズしないか数瞬程度でした。

  5. 暗黒 騎士 reporter

    別に課題を立てるべきかもしれませんが、台詞コンテントの選択肢を入力してエンターを押した瞬間に砂時計で応答不能になることがありました。この時、TTBaseは起動していませんでした。

    2016-04-16 23:31:16 [Build: 2016-04-16 20:04:46 Debug / Console (32-bit)]   cwx\editor\gui\dwt\mainwindow.d:4459 4297 - 4304 - 4335 - 4338 - 4368
    2016-04-16 23:31:16 [Build: 2016-04-16 20:04:46 Debug / Console (32-bit)]   cwx\editor\gui\dwt\mainwindow.d:4460 [Access Violation] , 0: 0x009D2325
    0x00D023A6
    0x00D0345F
    0x00D1C456
    0x00D1C203
    0x006E7FA2
    0x009775B4
    0x00976FE0
    0x00976863
    0x0111EA22
    0x0107DA4B
    0x0105B11A
    0x0105B299
    0x0105B188
    0x010524EB
    0x0105DAE1
    0x010578D2
    0x0104D134
    0x01108258
    0x01055A88
    0x0104CBE5
    0x01107BEF
    0x010C6B40
    0x01085C74
    0x01085A80
    0x77CF8734 in GetDC
    0x77CF8816 in GetDC
    0x77D08EA0 in CheckDlgButton
    0x77D08EEC in CheckDlgButton
    0x7C94E473 in KiUserCallbackDispatcher
    0x011049A1
    0x010C4C0F
    0x006EBF9F
    0x0086D53D
    0x00D842BC
    0x011B95CF
    0x011B9593
    0x011B9494
    0x00D84374
    0x011F29D9
    0x7C816037 in CreateActCtxW
    2016-04-16 23:31:16 [Build: 2016-04-16 20:04:46 Debug / Console (32-bit)]   cwx\editor\gui\dwt\cwxeditor.d:105 42 - 46 - 48 - 50 - 52 - 54 - 96 - 98
    2016-04-16 23:31:16 [Build: 2016-04-16 20:04:46 Debug / Console (32-bit)]   cwx\editor\gui\dwt\cwxeditor.d:106 [Access Violation] , 0: 0x009D2325
    0x00D023A6
    0x00D0345F
    0x00D1C456
    0x00D1C203
    0x006E7FA2
    0x009775B4
    0x00976FE0
    0x00976863
    0x0111EA22
    0x0107DA4B
    0x0105B11A
    0x0105B299
    0x0105B188
    0x010524EB
    0x0105DAE1
    0x010578D2
    0x0104D134
    0x01108258
    0x01055A88
    0x0104CBE5
    0x01107BEF
    0x010C6B40
    0x01085C74
    0x01085A80
    0x77CF8734 in GetDC
    0x77CF8816 in GetDC
    0x77D08EA0 in CheckDlgButton
    0x77D08EEC in CheckDlgButton
    0x7C94E473 in KiUserCallbackDispatcher
    0x011049A1
    0x010C4C0F
    0x006EBF9F
    0x0086D53D
    0x00D842BC
    0x011B95CF
    0x011B9593
    0x011B9494
    0x00D84374
    0x011F29D9
    0x7C816037 in CreateActCtxW
    
  6. k4nagatsuki repo owner

    確認なのですが、高速で動かした時に再描画が間に合わずに応答不能になって、相当時間を置いた場合には復旧する感じの挙動でしょうか。それとも何か致命的な問題が起きて永久に止まってしまう感じなのでしょうか。

  7. 暗黒 騎士 reporter

    TTBaseなしでのスクロールでは数秒入力を受け付けなくなりそのままの状態になりますが、間をおいてクリックしたタイミングで再描画が起こる感じです。 TTBaseありでのスクロールでは砂時計になり、永久かはわかりませんが、数分放置でも復旧しない感じです。

    選択肢でエンターを押した際の応答不能はPyでランタイムエラーが起こる時のような妙な間がありました。 結構作業した後だったのでなんとか復旧しないか待ちましたが、数分内では改善しなかったので強制終了しました。

  8. 暗黒 騎士 reporter

    再現しなくなりました!いくら動かしてもフリーズが起こらなくなった感じです。

    ついでに再現方法がわかったのですが、キャストカードをCtrl+C→Ctrl+VでコピペするとXEditorを再起動しない限り設定ダイアログの身体能力のグラフ表示が以下のような状態になるようです。

  9. k4nagatsuki repo owner

    弱りました。再現しなくなった事は喜べないです。というのは、上記のバージョンはファイルビューのヘッダを非表示にしてしまっているからです。ヘッダを非表示にすると名前や拡張子の各欄のサイズ調節やソートが行えなくなってしまいます。

    調べてみたところ、マウスボタンを押しながらポインタを動かした時、ポインタがヘッダ部分へ行くとなぜかひっきりなしに再描画処理が発生してしまう事があるようです。GUIライブラリのバグかと思ってライブラリ内部に手を入れて調べてみたのですが、原因になりそうな箇所が見つからなかったので、もしかするとWindows APIレベルの問題かもしれません。そうなると手も足も出ません。そしてこの問題はWin7(おそらくVista以降)では修正されているようです。

    以下のバージョンを試してみてください。おそらく問題は再発し、コンソールには延々とRepaintというメッセージが表示されるのではないかと思います。

    https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_test_20160417b.zip

    これは解決できない問題かもしれません。ファイルビューの配置を工夫してしのいでいただけないでしょうか。


    キャストカードのパラメータについては、上記バージョンで修正できているかもしれないです。修正できていなかったら別の方法を試してみます。

  10. 暗黒 騎士 reporter

    cwxeditor_test_20160417b.zipで試しましたが再発しないようです…? コンソールにもなにも表示されていません。 キャストカードをコピペすると以降グラフが異常表示される件については再現を確認しました。

    なんにせよ色々手を尽くして下さりありがとうございます。 7以降で再現しないのであれば自分的には問題ないかと思います。

  11. k4nagatsuki repo owner

    それはちょっと想定外でした。ここ数日でリストビューで範囲選択を行えるようにする改造を行っていたのですが、それでたまたま再現しないパターンを踏んだのでしょうか? だとするとラッキーですが釈然としませんね。

    キャストカードの件はこのバージョンをお試しいただけないでしょうか。

    https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_test_20160417c.zip

  12. 暗黒 騎士 reporter

    修正を確認しました。

    スクロールの件についても再度試しましたが、やはり再現しなくなっているようです。(自分の環境の条件が変わったのかと思い残していたBuild: 2016-04-16 00:28:43 で試したところ再現を確認) 結果としてはパーフェクトだと思いますので解決ボタンを押させていただきますね。 ありがとうございました。

  13. k4nagatsuki repo owner

    ご確認ありがとうございました。では、これからテスト版をビルドします(今のビルド環境だと30分くらいかかる……)。

    こういう超常現象としか言いようのない問題は困ったものです。パラメータ表示の問題も、値が180の変数を使うと計算が変な結果になって、180を直に指定すると(おそらくD言語の使用でコンパイル時に処理されるから?)正しく動くという奇妙なやつでした。以前64bit環境でのみ発生するのを見て64bitビルドのみ対策したのですが、まさか他の状況でも発生するとは思いもしませんでした。

  14. Log in to comment