【不具合】HTMLファイル編集中にアドレス読み取り違反

  1. こんばんは。

    症状としてはHTMLファイル編集中に「モジュール 'Mery.exe' のアドレス 00517CF9 でアドレス 03DFFEA0 に対する読み取り違反がおきました。.」と表示され正常にファイル編集ができない状態です。

    再現手順としては、

    1)当方が作成したHTML構文ファイルをあらかじめインポートする
    http://www.haijin-boys.com/wiki/HTML5.1

    2)下記HTMLファイルを読み込む
    http://momdo.s35.xrea.com/web-html-test/CSS3-ja/index.html

    3)適当にスクロールすると
    「モジュール 'Mery.exe' のアドレス 00517CF9 でアドレス 03DFFEA0 に対する読み取り違反がおきました。.」
    のダイアログが開く(ただし、Mery.exeは落ちない)、となります。
    (2つめのアドレス03DFFEA0は下2桁不定のようです。)

    OSはWin8x64、MeryはBuild 2.1.9.4739です。

    なお、編集モードをTextにすると何も起きない、必ずしもすべてのHTMLファイルで症状が再現しないことから、当方が作成した構文ファイルが何か悪さをしているものと思われます…

    よろしくお願いします。

     |  momdo  |  返信
  2. こんばんは、ご報告ありがとうございます。

    こちらでも Win8 64bit (評価版ですが) で環境を構築して手順通り試してみたのですが再現できない状態です。

    読み取り違反のエラーは原因を究明するのがかなり難しく、時々発生することは確認しているものの根本的な原因が分からない状態です。

    もし、正確な再現手順が分かればぜひ教えていただきたく思います。

    今回のエラーですと、momdo さんの環境では再現できそうな感じですので、他の部分の設定が影響している可能性も考えられます。

    C:\Users\xxxx\AppData\Roaming\Mery\Mery.ini

    Mery をいったん終了させて、INI ファイルをどこか別のフォルダに移動した状態で (なおかつ INI ファイルのバックアップを取っておいてください) Mery を起動して、クリーンな状態で再現手順をお試しいただき、再現されるかどうかご確認いただけませんでしょうか。

    ご確認後、Mery.ini を元に戻せは環境は元通りになります。

    お手数をおかけしますが、もしよろしければご協力頂けると調査しやすいです。

     |  Kuro  |  返信
  3. Kuroさま、レスありがとうございます。

    > Mery をいったん終了させて、INI ファイルをどこか別のフォルダに移動した状態で (なおかつ INI ファイルのバックアップを取っておいてください) Mery を起動して、クリーンな状態で再現手順をお試しいただき、再現されるかどうかご確認いただけませんでしょうか。
    なるほど、クリーンな環境では何も起きませんね…。申し訳ないですorz

    > 読み取り違反のエラーは原因を究明するのがかなり難しく、時々発生することは確認しているものの根本的な原因が分からない状態です。

    > もし、正確な再現手順が分かればぜひ教えていただきたく思います。
    自分でもどこをどう設定したのかわからない(というほどは弄くり回してないはずですが)ので、少し時間をください。

    何か進展がありましたら、また連絡させていただきます。

     |  momdo  |  返信
  4. こちらこそ、調査にご協力くださりありがとうございます。

    > なるほど、クリーンな環境では何も起きませんね…。申し訳ないですorz

    いえいえ、そもそも Mery の内部的なエラーだと思いますので、設定が関係していたとしても Mery 側の問題ですからね^^;

    > 自分でもどこをどう設定したのかわからない(というほどは弄くり回してないはずですが)ので、少し時間をください。

    お手数をおかけします。
    INI ファイルをメールなどで送ってくださればこちらでも再現可能かもしれません。
    ただ、INI ファイルには検索履歴とかの機密情報的なものも入っていますので、もしよろしければということで。宜しくお願いいたします。

     |  Kuro  |  返信
  5. Kuroさま

    > お手数をおかけします。
    > INI ファイルをメールなどで送ってくださればこちらでも再現可能かもしれません。
    > ただ、INI ファイルには検索履歴とかの機密情報的なものも入っていますので、もしよろしければということで。宜しくお願いいたします。

    メールでINIを送る前に、自分の環境で書き戻して本当に再現するのか確かめてみたのですが、
    再現しなかったという…INI絡みの設定が直接の原因では無いということでしょうか(?)

    という状況ですので、INIをそちらに送るのを保留しておきます。
    再現できなくても構わないならばお送りしますが、どうしましょうか?

     |  momdo  |  返信
  6. 明確な再現方法の仕方は相変わらずわかっていないのですが、
    メインメモリを大量に消費(Windows 8.1 x64で3.6GB)で読み取り違反の警告が出ました。
    (思い返せば、ブラウザを複数個立ち上げたときに起きていた気はします。)

    また、当方の作成したHTML構文ファイルでなく、デフォルトのXML構文ファイルでも同様の警告が出たことを追記しておきます。

     |  momdo  |  返信
  7. ご報告ありがとうございます。
    依然として当方の環境では再現できない状態ですが、引き続き注意して観察してみます。
    Windows 8 が欲しいところです・・・。

     |  Kuro  |  返信
  8. Kuroさま、いつもお世話になっています。
    momdoさん、横入りすみません。

    Meryを愛用させていただいておりますが
    今朝、momdoさんと同じ状態になりました。
    (当方の環境:64bit Windows8.1, mery version 2.2.1.4937)

    「アドレス0051A009でアドレス0210FF76に対する読み取り違反がおきました」と出て
    htmlファイルが編集できなくなりました。
    textファイル、cssファイルは問題なく開けます。

    当方も、IE11, Chrome33, Firefox28を同時に開いていて発生しました。
    一旦発生すると他のアプリケーションを立ち上げていなくても発生するようになりました。
    先週迄は問題なく3ブラウザ同時に開いていたのに、と思いましたが
    先週金曜日からGoogle Analyticsのリアルタイム結果を表示しているので
    これがメモリ大量消費の要因という気がしています。

    もし当方のiniファイルをお送りする事で解決の一助となるのであれば送付致しますが
    如何いたしましょうか。

     |  じゅんじゅん  |  返信
  9. ● じゅんじゅん さん

    ご報告ありがとうございます。

    > 一旦発生すると他のアプリケーションを立ち上げていなくても発生するようになりました。

    Mery を再起動しても発生していますでしょうか?
    もし Mery を再起動 (常駐している場合は終了させる) しても発生するようであれば ini ファイルを頂くことで再現できる可能性があります。こちらで再現できれば修正可能だと思いますので、ご協力いただければ幸いです。

    アップローダっぽいものはございませんので、大変恐縮ですが以下のメールアドレスに送付お願いいたします。

    kuro@haijin-boys.com

    お手数をおかけしますがよろしくお願いいたします。

     |  Kuro  |  返信
  10. Kuroさま

    お世話になります。

    > Mery を再起動しても発生していますでしょうか?

    OSを再起動しても再現しました。
    又、一旦Meryを削除して最新版をダウンロードした後
    Meryのみを立ち上げて使用してみましたが再現しました。

    iniファイルを削除したところ無事起動して
    再び複数ブラウザと共存するようになりました。
    (負荷の高そうなサイトは常時開いておくのをやめました)

    後程お教え頂いたメールアドレス宛にiniファイルをお送り致します。
    お手数をお掛け致しますが、よろしくお願い致します。

     |  じゅんじゅん  |  返信
  11. ● じゅんじゅん さん

    ご報告ありがとうございます。
    ini ファイル、受信いたしました、お手数をおかけして申し訳ございません。ご協力に感謝します。

    Windows 8.1 64bit の環境下で頂いた ini ファイルを元に想定される環境を構築して検証してみましたが現象を再現できておりません。

    FireFox、Chrome、IE 11、とある画像処理ソフトやとある開発環境などを複数起動した状態で激しくメモリを消費しつつ Google Analytics のリアルタイムレポートを今朝から動かし続けておりますが、今のところ例のエラーは発生しておりません。

    しかしパソコンを再起動しても発生し、ini ファイルを削除すると治るということなので Mery 側の設定の問題が関係しているのだとは思いますが、他のソフトとの相性問題だとか、ウイルスチェックソフトだとか、マルチモニタ環境下での要因など、色々考えられますね。

    引き続き、検証環境はこのまま数日放置して様子を見たいと思います。

    もし他にお気づきの点などがございましたらご連絡頂けると助かります。

     |  Kuro  |  返信
  12. Kuroさん、こんばんは。

    私も、数カ月前に「モジュール'Mery.exe'のアドレス0051A365でアドレス02AFFF5Aに対する読み取り違反が起きました。.」というエラーを何回か見かけたことがあります。
    スクリーンショットを確認したところ、後者のアドレスは他に02A4FF5A、028AFF5Aがありました。

    状況は、それ以降は発生していないので少々うろ覚えですが、
    ・HTML構文ファイルは、デフォルトのものでした。
    ・HTMLファイルの編集中にエディタの背景に画像をあれこれセットしているときでした。
    ・テキストファイルで生じさせることはできませんでした。
    ・他のアプリケーションにフォーカスを当ててからMeryにフォーカスを戻すと、エラーダイアログが重なって出現していたので、エディタ画面を再描画する部分に不具合が生じていると思いました。
    ・マウスでエディタウィンドウをクリックすると、その行は再描画されていました。
    ・カーソルも消失し画面にも反映されていませんでしたが、確か入力そのものはできていました。
    ・環境は、Microsoft Windows 7 Home Premium 64 ビット Service Pack 1、Mery 2.2.1.4937でした。
    という感じだったかと。

    ちなみに、現在でも何かの拍子に日本語変換候補のダイアログが消えないときがあります。
    もしかすると、関係があるのかも知れませんね。
    なお、使用しているIMEは、Google日本語入力です。

    取り急ぎ情報提供まで。

     |  手石  |  返信
  13. ● 手石 さん

    ご報告ありがとうございます。
    発生条件が別のアプリケーションから Mery にフォーカスが移った際に発生するエラーとのことですので、恐らくこのエラーはバージョン 2.2.0.4910 (2013/11/16) にて修正完了しているものだと思われます。

    今回の件は Windows 8.1 に関係しているのではないかと思います。Mery と同じく、Delphi 製の他のアプリケーションでも似た事例がありましたのでそのあたりを疑っております。

    > ちなみに、現在でも何かの拍子に日本語変換候補のダイアログが消えないときがあります。

    これは私も Mery に限らず良く見かけますがウィンドウズ恒例のいつものやつだと思います…w

     |  Kuro  |  返信
  14. こんばんは。

    > 恐らくこのエラーはバージョン 2.2.0.4910 (2013/11/16) にて修正完了している
    Oops.失礼いたしました。

    > これは私も Mery に限らず良く見かけますがウィンドウズ恒例のいつものやつだと思います…w
    やはり……。

     |  手石  |  返信
  15. いつもお世話になっています。
    こちらで報告されているエラー、本日こちらでも発生しました。
    OS: Win8.1 64Bit
    Mery:  2.2.2.4953 

    また、
    >別のアプリケーションから Mery にフォーカスが移った際に発生するエラー (中略)
    >バージョン 2.2.0.4910 (2013/11/16) にて修正完了しているものだと思われます。
    このエラーが、最新の Mery 2.2.2.4953 で発生しました。
    エラーの状況は投稿者のmomdoさんや他の方とほぼ同じですが、いくつか追加情報を。

    *****
    ・そのエラーが出たとき、マウスポインターにはタブを掴んだ状態の四角いアイコンが表示されている。
    ・その状態に別の html ファイルを追加し、追加のファイルにタブで切り替えると、切り替えただけで同じエラーがでた。
    ・同時に GoogleChrome を開いていて、 GoogleChrome でマウスホイールを動かしたときに裏で立ち上がっている Mery でこのエラーが出た(流石にこれは驚きました)。
    ・先にも書きましたように、 GoogleChrome から Mery へ切り替えた時にも発生しました。
    ・Emmet LiveStyle は入れていますが、この時は連動させていません。
    *****

    「メモリーを大量消費しすぎると~」
    のお話もあるようですがこのエラー発生後(つい先ほど)、PC 再起動直後に Mery と GoogleChrome を立ち上げただけでも起きました。
    Mery 2.2.2.4953 リリース後から昨日まで、もっと沢山のメモリーを消費した状態で、エラーを起こした html ファイルを編集したいましたがまったくエラーは出ませんでした。
    この投稿を書いている今、メモリーを消費した状態でエラーの再現を試みていますが、今は全く問題なく Mery は動いています。

    特に困ってはいませんが、問題解決の材料になればと思い投稿しました。

     |  アイスクライマー  |  返信
  16. お世話になっております、情報ありがとうございます。

    あれからしばらく様子を見ておりますがいまだ、再現できておりません。
    やはり Windows 8.1 ですか。

    Windows 8.1 64bit (評価版) で検証しております。
    評価版だと駄目なのかしら…しかし OS 買う金ないしなー…orz

     |  Kuro  |  返信
  17. キマシタ!ついに現象再現しました!

    アウトラインプラグインが起動していると発生するようですが、今回ご報告くださった皆様もアウトラインプラグインって使われているのでしょうか?

    私はアウトラインプラグイン一度も使ったこと無い ^^; ので気づきませんでした…

     |  Kuro  |  返信
  18. おぉ、 再現おめでとうございます!
    アウトラインプラグイン、私は使ってます。
    自分では使うのが当たり前になって、動作環境として書き忘れてました・・・。
    不具合解消に繋がることを願ってます!

     |  アイスクライマー  |  返信
  19. 再現しました、ありがとうございます!…っていうのもなんか変ですけどw

    確かに再読み込みのタイミングで発生しますね。
    以前に修正したとされている不具合もほぼ同種のものなのですが、プラグイン周りで抜け穴があったようです。
    修正は完了しまして、現在テスト中でございます。

    副作用でファイルを開く速度や再読み込みが若干速くなると思われますが、さらに副作用で何か問題が起きないかが不安なところではあります。いずれにせよ近日中に修正版を公開したいと考えております。

     |  Kuro  |  返信
  20. Kuroさん、お久しぶりです。

    自分はアウトラインプラグインを使っていないのですが読み取り違反が起きました。
    Windows 7 64bit、Mery 2.2.2.4953です。

    他の方と同様INIファイルを削除したり、変更すると直ります。
    INIファイルの何が影響しているかはわかりません。セクションの記述順を変えるだけで直ったりしました。

    色々テストしていたらINIファイル以外にも、

    ・Mery.exeのパスが36文字以上
    ・桁数が多い行があるHTMLファイル(厳密に調べてませんが、折り返さない設定でも折り返すくらいなら確実)
    ・上記HTMLファイルのパスが40文字以上
    ・Meryを起動していない状態で、ファイルをMery.exeにドロップなどで開く

    といった条件があるようです。

    読み取り違反のダイアログをOKを押して閉じると、ファイルは読み込まれてるけど、描画されてないような状態になります。この時、行番号とルーラも描画されていません。

    下キーを一度押すと行番号とルーラが描画され、現在行の前後の行も描画されます。その後下キーを押していくと、一つ下の行が描画されていきますが、桁数が多い行に差し掛かると再び読み取り違反が起きます。

    読み取り違反のダイアログを閉じた後に編集モードを切り替えると再び読み取り違反が起こる場合があります。再び読み取り違反が起こるモードは決まっていて、ColdFusion, HTML, JSP, PHP, TeX, Windows Script, XMLです。

    何か参考になれば幸いです。
    もし必要でしたら、再現したINIとHTMLをお送りします。

     |  ucky  |  返信
  21. ucky さん、ご無沙汰しております。
    ご報告ありがとうございます。

    > 自分はアウトラインプラグインを使っていないのですが読み取り違反が起きました。

    今のところ確認している現象としては、代表的な例でアウトラインプラグインを挙げましたがその他のプラグインを起動している状態でも発生する可能性はあります。プラグイン側に編集モードの変更を通達するイベント中にプラグイン側から再描画が必要な API が呼ばれてしまうと発生するようです。

    しかしながらプラグインを何も起動していない状態でも発生するとなるとちょっと厄介ですね…

    > 読み取り違反のダイアログを閉じた後に編集モードを切り替えると再び読み取り違反が起こる場合があります。再び読み取り違反が起こるモードは決まっていて、ColdFusion, HTML, JSP, PHP, TeX, Windows Script, XMLです。

    読み取り違反のエラーは結構致命的なエラーなので、一度発生すると Mery を再起動しない限りは関係ない操作でも発生してしまうことがあるようです。Mery を再起動するまでは治らないと思います。

    これまでに頂いた情報をもとにこちらでも実験をしておりますが、プラグインを起動していない状態では再現できていません。確実な再現手順が分かれば良いのですが…

    以前に情報をご提供くださった方から INI ファイルや参考ファイルを頂きましたがこちらの環境では再現できておりませんので、半ば諦めモードです(涙

     |  Kuro  |  返信
  22. こちらでは、テスト時プラグインは起動していませんでした。

    後ほど詳しい再現手順と必要なファイルを上に出てたメールアドレスに送ってみます。
    環境によるのかもしれませんが、こちらでは100%再現します。

    Kuroさんの環境でも再現するとよいのですが……。

     |  ucky  |  返信
  23. ● ucky さん

    ご連絡ありがとうございます。お手数をお掛けしてしまい申し訳ございません。
    頂いた発生条件の通りで再現することができました。

    このエラーはこのスレッドで前回ご報告頂き、修正した内容とはまた別のエラーでした。どちらも「読み取り違反」という名前のエラーなのでごっちゃになって、現象の発生条件が複雑になっていたようです。

    ご協力のおかげでようやくこれらのエラーを修正できそうです。
    (ucky さんにご報告いただいたエラーはプログラムの凡ミスでした... よく今までこれで動いてたなっていうレベルの...早めに修正いたします)

     |  Kuro  |  返信