フォーラムの返信を作成しました。
- 作成者投稿
- yasujiParticipant
江村様
いつもお世話になっております。
yasujiです。まずは、Explzhの圧縮展開ツールにgzファイルの展開に先頭行が重複出力される不具合を認知しておらず、ご迷惑をおかけして申し訳ありませんでした。
長年愛用してきたツールで信用していたのですが、まさかこのような状況で信頼を裏切られることにショックを受けております。
緊急の応急対策として、7-Zip for Windowsをダウンロードして、.xml.gz、.xml.bz2の展開をしたところ、江村様の提示されたファイルサイズとSHA256と全く同一になったことを確認できました。
ただし、今回に限りデータの差異も不具合の発生有無に影響する可能性があるかもしれないと考えて、Explzhと7-Zipのそれぞれのxmlファイルをテストデータとして採用して検証しました。江村様の方でも動き(#32118)がありましたので、私がオオカミ少年にならないように最後の検証調査結果を実施してご連絡させていただきます。
検証調査結果を連絡するに至ったのは、2024年11月27日(JST)の夜の時点で不具合の発生条件が前回より新しい情報が判明したことと、すでに調査してしまっていて諸々けじめをつけることが理由です。SHA256のハッシュ値の検証結果については、7-Zipで展開したxmlは江村様の提示のSHA256、Explzhで展開したxmlは前回報告したSHA256とすべて完全に一致していることは確認しておりますので、スペースの節約の観点から掲載を省略させていただきました。
2024年11月27日(JST)の夜から現在に至る間に、EmEditor Version 24.4.2においてこの不具合が修正されたとの連絡で少し驚いております。後述しますが、私の予測よりもかなり不具合の特定が早かったという点で驚いています。
検証結果は「調査結果3 EmEditor Version 24.4.2の検証結果」にて示した通り、すべてのケースで不具合は発生しませんでした。ここから、検証調査結果の新情報と私の見立てを説明いたします。
今回の検証調査結果と、私の前回の検証結果の差異が下記の通りありました。
(A)G:の通常フォーマットの実施後に不具合が発生しなくなった
個人の事情で中のファイルすべてを別のHDDドライブに移動して通常フォーマット(NTFS, アロケーションユニットサイズ:4KB)を実行した後、検証を実施した結果不具合が発生しなくなりました。
以前は、NTFSのアロケーションユニットサイズ4KBでフォーマット済みで、ほぼ100%の発生確率でした。
(B)G:の検証結果の変化を受けて、再起動してから2回目の検証を実施したところ、一部のケースで不具合発生の有無の差異が生じた
ファイルの変更は一切ないにもかかわらず、調査結果1と調査結果2のCaseNo4とCaseNo23で不具合発生の有無が変化した。上記の差異と今までの検証結果の知見から不具合の発生条件の私の見立ては下記の通りになります。
- (A)の事実から、EmEditorがファイルを開く際にパーティションの情報(フォーマットすると変化する何らかのパラメータ)を利用していると推定されます(ほぼ確定)。
- (B)の事実から、EmEditorがファイルを開く際にOSの再起動で変化する情報を利用していて、その情報が条件付きで行数位置算出に影響を与えていると推定されます。
(A)の事象が発生した原因の合理的な説明がこれ以外で説明することができないため。
勝手な推測ですが、ファイルマッピング技術を使用して最小のメモリサイズでファイルを開いていると考えています。
この推測が正しいと仮定した場合、(B)の事象の原因は、おそらくその技術で取得できるファイルデータのアドレス情報が、ファイル開く際の行数位置算出に意図せずに関与している可能性があり、アドレス値によって影響を与えていると推測しています。ただし、上記の2つが、ORまたはANDの条件でファイルデータの読み取り処理の行数位置算出に影響を与えて、最終的に不具合が発生していると推測しました。
この不具合は、リードキャッシュがない場合に限り発生していることから、ファイル読み取り処理の初期段階でキャッシュの有無判定があり、キャッシュ無しの場合に上記で推定した条件で不具合が発生していると考えました。
ただし、上記は、私が外から観測して得られた情報からの勝手な推測であるため、実際の実装とは合致しないのは承知しております。EmEditor Version 24.4.2で修正されたこの不具合の説明文を読んだ限りですが、上記の推定した不具合とは少し違う印象を受けました。この不具合が発生させる現象を基準にして考えると、その現象を引き起こす不具合は一つではなく、複数の不具合が重なって一つのように見えているだけの状況で、そのうちの一つの不具合を修正して問題が解消したと安心してしまった状況では無いかと懸念しております。
つまり、本当は不具合の真因がまだ残存していて、たまたま発生しない条件で検証して問題解消に見えているだけで、未知の条件でこの不具合が再発するのではと考えています。
再現する条件が難しいこの不具合を見つけ出すには、2024年11月27日(JST)の夜を基準にしてそこから4日~7日は必要になると予測していました。長年のITエンジニアの経験から培った仕事の勘とその実績が少なからずあり、EmEditor Version 24.4.2で修正された不具合の説明文を初めて読んだ時に勘が働いてまだ不具合が残っていると直感したため、行き過ぎかもしれませんが念のため私のこの不具合原因の見立てを連絡した次第です。
この不具合は、EmEditorのテキストデータをユーザに気づかれることなくデータ改変する性質があり、発生確率がかなり低くても一度発生するとユーザにとっても、江村様のこの先の事業にっとても多大な影響を与えます。
詳細を語ることができませんが、過去にとあるソフトウェア開発プロジェクトに第三者の立場で関与していたときに、それなりの複雑度と大きさのソフトウェアを開発していました。その時の不具合が多発しており、
その収束を目指して進められていた時に、ある不具合Aが発生して修正して事なきを得たように見えたのですが、最終工程の出荷前のテストで予期しない不具合Bが発覚して、緊急対応が行われて最終的には遅延する形で無事出荷することができました。
しかし、後日に実施された調査分析の結果で不具合Bは、実は不具合Aの真因調査で早期の段階で見つけた原因の修正で調査をやめずに続けていれば、不具合Bを予期できる手がかりを得られることができたことが判明して、厳しく注意されました。
この時の教訓として、不具合には複数の不具合が重なって一つに見えることがあることを学び、以後の不具合発見にそのケースの可能性を考慮するようになりました。いろいろとご迷惑をおかけしましたので、知見をご提供する形でお詫びとさせていただきたく思います。
今後は新しい不具合情報については、どのような場所や形であっても一切出すことはいたしませんので、ご安心いただければと思います。私は状況が急展開してやや混乱しておりますが、今回ご迷惑をおかけした件について、一方的で申し訳ありませんがこれを以って幕引きとさせていただきたいです。
よろしくお願いします。
——————————————
〔今回調査した情報〕調査結果1 EmEditor Version 24.4.902の不具合再現結果1 CaseNo 行数不一致 圧縮展開ソフト名 ファイル名 ファイルパス名 行数 カーソル位置 1 Explzh enwiki-20241020-abstract.xml C:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 2 7-Zip enwiki-20241020-abstract.xml C:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 3 * Explzh enwiki-20241020-abstract.xml D:\TestData\enwiki-20241020-abstract.xml 0/86,672,234 行 86,672,234行, 1桁 4 7-Zip enwiki-20241020-abstract.xml D:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 5 Explzh enwiki-20241020-abstract.xml E:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 6 7-Zip enwiki-20241020-abstract.xml E:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 7 Explzh enwiki-20241020-abstract.xml G:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 8 7-Zip enwiki-20241020-abstract.xml G:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 9 Explzh enwiki-20241020-abstract.xml H:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 10 7-Zip enwiki-20241020-abstract.xml H:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 11 * Explzh enwiki-20241020-abstract.xml J:\TestData\enwiki-20241020-abstract.xml 0/86,712,184 行 86,712,184行, 1桁 12 * 7-Zip enwiki-20241020-abstract.xml J:\TestData_7zip\enwiki-20241020-abstract.xml 0/86,631,952 行 86,631,952行, 1桁 13 Explzh jawiki-20241020-abstract.xml C:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 14 7-Zip jawiki-20241020-abstract.xml C:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 15 * Explzh jawiki-20241020-abstract.xml D:\TestData\jawiki-20241020-abstract.xml 0/22,207,007 行 22,207,007行, 1桁 16 * 7-Zip jawiki-20241020-abstract.xml D:\TestData_7zip\jawiki-20241020-abstract.xml 0/22,014,766 行 22,014,766行, 1桁 17 Explzh jawiki-20241020-abstract.xml E:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 18 7-Zip jawiki-20241020-abstract.xml E:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 19 Explzh jawiki-20241020-abstract.xml G:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 20 7-Zip jawiki-20241020-abstract.xml G:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 21 Explzh jawiki-20241020-abstract.xml H:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 22 7-Zip jawiki-20241020-abstract.xml H:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 23 * Explzh jawiki-20241020-abstract.xml J:\TestData\jawiki-20241020-abstract.xml 0/22,207,007 行 22,207,007行, 1桁 24 * 7-Zip jawiki-20241020-abstract.xml J:\TestData_7zip\jawiki-20241020-abstract.xml 0/21,869,820 行 21,869,820行, 1桁 25 Explzh jawiki-20241020-pages-meta-current.xml C:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 26 7-Zip jawiki-20241020-pages-meta-current.xml C:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 27 Explzh jawiki-20241020-pages-meta-current.xml D:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 28 7-Zip jawiki-20241020-pages-meta-current.xml D:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 29 Explzh jawiki-20241020-pages-meta-current.xml E:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 30 7-Zip jawiki-20241020-pages-meta-current.xml E:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 31 Explzh jawiki-20241020-pages-meta-current.xml G:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 32 7-Zip jawiki-20241020-pages-meta-current.xml G:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 33 Explzh jawiki-20241020-pages-meta-current.xml H:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 34 7-Zip jawiki-20241020-pages-meta-current.xml H:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 35 Explzh jawiki-20241020-pages-meta-current.xml J:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 36 7-Zip jawiki-20241020-pages-meta-current.xml J:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 D: ST8000DM004-2CX188, 8TB G: WD My Passport 2627 USB HDD (WDC WD40NDZW-11MR8S1), 4TB (NTFS 4KB、通常フォーマット済み) H: WDC WD120EFBX-68B0EN0, 12TB J: ST8000DM004-2CX188, 8TB
調査結果2 EmEditor Version 24.4.902の不具合再現結果2 CaseNo 行数不一致 圧縮展開ソフト名 ファイル名 ファイルパス名 行数 カーソル位置 1 Explzh enwiki-20241020-abstract.xml C:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 2 7-Zip enwiki-20241020-abstract.xml C:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 3 * Explzh enwiki-20241020-abstract.xml D:\TestData\enwiki-20241020-abstract.xml 0/87,988,655 行 87,988,655行, 1桁 4 * 7-Zip enwiki-20241020-abstract.xml D:\TestData_7zip\enwiki-20241020-abstract.xml 0/86,687,414 行 86,687,414行, 1桁 5 Explzh enwiki-20241020-abstract.xml E:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 6 7-Zip enwiki-20241020-abstract.xml E:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 7 Explzh enwiki-20241020-abstract.xml G:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 8 7-Zip enwiki-20241020-abstract.xml G:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 9 Explzh enwiki-20241020-abstract.xml H:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 10 7-Zip enwiki-20241020-abstract.xml H:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 11 * Explzh enwiki-20241020-abstract.xml J:\TestData\enwiki-20241020-abstract.xml 0/86,665,856 行 86,665,856行, 1桁 12 * 7-Zip enwiki-20241020-abstract.xml J:\TestData_7zip\enwiki-20241020-abstract.xml 0/86,693,517 行 86,693,517行, 1桁 13 Explzh jawiki-20241020-abstract.xml C:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 14 7-Zip jawiki-20241020-abstract.xml C:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 15 * Explzh jawiki-20241020-abstract.xml D:\TestData\jawiki-20241020-abstract.xml 0/22,014,767 行 22,014,767行, 1桁 16 * 7-Zip jawiki-20241020-abstract.xml D:\TestData_7zip\jawiki-20241020-abstract.xml 0/21,413,276 行 21,413,276行, 1桁 17 Explzh jawiki-20241020-abstract.xml E:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 18 7-Zip jawiki-20241020-abstract.xml E:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 19 Explzh jawiki-20241020-abstract.xml G:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 20 7-Zip jawiki-20241020-abstract.xml G:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 21 Explzh jawiki-20241020-abstract.xml H:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 22 7-Zip jawiki-20241020-abstract.xml H:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 23 Explzh jawiki-20241020-abstract.xml J:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 24 * 7-Zip jawiki-20241020-abstract.xml J:\TestData_7zip\jawiki-20241020-abstract.xml 0/22,104,107 行 22,104,107行, 1桁 25 Explzh jawiki-20241020-pages-meta-current.xml C:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 26 7-Zip jawiki-20241020-pages-meta-current.xml C:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 27 Explzh jawiki-20241020-pages-meta-current.xml D:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 28 7-Zip jawiki-20241020-pages-meta-current.xml D:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 29 Explzh jawiki-20241020-pages-meta-current.xml E:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 30 7-Zip jawiki-20241020-pages-meta-current.xml E:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 31 Explzh jawiki-20241020-pages-meta-current.xml G:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 32 7-Zip jawiki-20241020-pages-meta-current.xml G:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 33 Explzh jawiki-20241020-pages-meta-current.xml H:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 34 7-Zip jawiki-20241020-pages-meta-current.xml H:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 35 Explzh jawiki-20241020-pages-meta-current.xml J:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 36 7-Zip jawiki-20241020-pages-meta-current.xml J:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁
調査結果3 EmEditor Version 24.4.2の検証結果 CaseNo 行数不一致 圧縮展開ソフト名 ファイル名 ファイルパス名 行数 カーソル位置 1 Explzh enwiki-20241020-abstract.xml D:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 2 7-Zip enwiki-20241020-abstract.xml D:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 3 Explzh enwiki-20241020-abstract.xml E:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 4 7-Zip enwiki-20241020-abstract.xml E:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 5 Explzh enwiki-20241020-abstract.xml G:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 6 7-Zip enwiki-20241020-abstract.xml G:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 7 Explzh enwiki-20241020-abstract.xml H:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 8 7-Zip enwiki-20241020-abstract.xml H:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 9 Explzh enwiki-20241020-abstract.xml J:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 10 7-Zip enwiki-20241020-abstract.xml J:\TestData_7zip\enwiki-20241020-abstract.xml 0/85,969,885 行 85,969,885行, 1桁 11 Explzh jawiki-20241020-abstract.xml D:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 12 7-Zip jawiki-20241020-abstract.xml D:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 13 Explzh jawiki-20241020-abstract.xml E:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 14 7-Zip jawiki-20241020-abstract.xml E:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 15 Explzh jawiki-20241020-abstract.xml G:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 16 7-Zip jawiki-20241020-abstract.xml G:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 17 Explzh jawiki-20241020-abstract.xml H:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 18 7-Zip jawiki-20241020-abstract.xml H:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 19 Explzh jawiki-20241020-abstract.xml J:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 20 7-Zip jawiki-20241020-abstract.xml J:\TestData_7zip\jawiki-20241020-abstract.xml 0/20,871,118 行 20,871,118行, 1桁 21 Explzh jawiki-20241020-pages-meta-current.xml D:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 22 7-Zip jawiki-20241020-pages-meta-current.xml D:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 23 Explzh jawiki-20241020-pages-meta-current.xml E:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 24 7-Zip jawiki-20241020-pages-meta-current.xml E:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 25 Explzh jawiki-20241020-pages-meta-current.xml G:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 26 7-Zip jawiki-20241020-pages-meta-current.xml G:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 27 Explzh jawiki-20241020-pages-meta-current.xml H:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 28 7-Zip jawiki-20241020-pages-meta-current.xml H:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 29 Explzh jawiki-20241020-pages-meta-current.xml J:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 30 7-Zip jawiki-20241020-pages-meta-current.xml J:\TestData_7zip\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁
——————————————
〔今回使用したツール〕
7-Zip (24.08, 64bit)
https://www.7-zip.org/圧縮ファイル展開ツール以外は、前回のものと同じ。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。どのようなツールでも構いませんので、お客様のマシンに問題がないか、できるだけ確認をお願いします。コンピューターの製造元がブート時や付属ソフトウェアで診断ツールを提供している場合は、それを使って完全なテストを行うことをお勧めします。中には、起動時に特定のキーを押すことでテストを開始できるコンピューターもあります。
また、ハードディスクのS.M.A.R.T.情報を確認し、異常がないかチェックしてください。特定のハードディスクで問題が発生しているようですが、問題のあるディスクに共通点はありますか?ハードディスクのファームウェアに問題がある可能性も考えられるので、可能であればファームウェアのアップデートをお願いします。詳しくはハードディスクのメーカーのWebサイトをご参照ください。
つまり、「あなたのマシンのハードウェアの問題であって、EmEditorの不具合ではありません。したがって、修正することはありません。」という、ご回答だと理解いたしました。
#32094で、ご回答した内容は、実は江村様が故意にXMLファイルの内容を7バイト削除して、不具合がないことを主張することが目的だった。もし、私が何か言ってきたら、江村様はこちらの環境では、このようなファイルになっており、不具合は再現されませんでしたと主張して、私のマシンの環境に原因であると結論付けて、強引に納得させる目論見だったということですね。
Windowsメモリ診断ツールなどで、メモリに異常がないかテストしてみてください。
まず最初に、Windowsメモリ診断ツールでもテストしてみてください。ディスクによって結果が異なるということですので、CrystalDiskInfo などディスク診断ツールでも各ディスクをテストしてみてください。お使いのマシンに問題がないことを完全に確認することが重要です。
上記のテストのご説明ですが、2回目でテスト項目が増えています。ディスクやメモリの問題の可能性があることが分かっていたなら、最初から2回目の内容で書くことができたはずです。2回目でテストするツールを増やしたのは、テストすることが手間であることがわかっていて、かつ数を増やせば一つくらい問題が出るだろうと考えて、手間で私を疲弊させてあきらめさせるか、問題が出たらそれの可能性があると説明して、EmEditorの不具合ではないと説明づけて解決するつもりだった。
上記が私のこの不具合の江村様の対応の真意だと考えています。
私とのメールのやり取りが勝手に転載されたのであれば、私のメールアドレスをご存じのはずです。そちらにご連絡ください。
今後は、フォーラムではなく、直接私にメールを送ってください。
つまり、「今後はこのような深刻な不具合は個別にご連絡して、江村様の許可なく公開しないでください。」という意味でよろしいでしょうか?
EmEditorのトップのHPにある「<100%> SATISFACTION GUARANTEE QUALITY SOFTWARE EMEDITOR」のロゴを出しているので、このような不具合を多数出されると当社の高品質保障を著しく毀損しますので、くれぐれもむやみに公表しないようにという脅しに聞こえます。この不具合に関しては、その他の不具合報告と異なり、その発生原因は私のハードウェアの問題にあるということにしたいという、江村様の回答から江村様の非常に強い意志が感じられました。
そこを含めて考えると、EmEditorの根幹に関わりかつ修正が極めて困難な不具合だということが分かりました。いずれにしても、これは不具合ではなく、私のマシンのハードウェアの問題で生じたもので、EmEditorの不具合ではないといことで了解しております。
私も、さすがに11月の不具合報告と想定外のこの不具合報告と対応で疲れてしまったので、もし新しい不具合を見つけたとしても報告することはもう二度とありませんので、ご安心いただければと思います。
11月に報告した不具合及び、この不具合の対応をユーザが見て、今後ともEmEditorを使い続けたいと考えるユーザはいないのではないでしょうか。最後に、この不具合報告の対応に怒りを覚えるところがありましたので、上記に私の見解を書かせていただきました。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。v24.4.902 (64bit)について、この不具合の修正確認を行った結果、下記の通り不具合が発生しております。
再度、修正対応をお願いします。〔確認結果〕
〔再現手順〕の8.と全く同じ現象が発生しましたので、不具合修正がされていないように見えます。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。v24.4.902 (64bit)について、この不具合の修正確認を行った結果、下記の通り不具合が発生しております。
再度、修正対応をお願いします。〔確認結果〕
[検索する文字列]に\R
、(\n)
、[\r\n]
のどれかを設定した場合:
[次を検索]を押下した直後に下記の内容で[OK]または[キャンセル]ボタンのあるメッセージボックスが表示される。
「Onigmo 正規表現エンジンの内部でアクセス違反例外が発生しました。この問題を回避するには、正規表現の簡素化を試みてください。[OK]をクリックすると、無視して継続します。[キャンセル]をクリックすると、異常終了します。」
[OK]を押下すると、検索処理が続行されるがすぐに応答なしになる。
[キャンセル]を押下すると、クラッシュレポート画面が表示されて、その後に表示される画面から[EmEditorを終了]ボタンを押下して終了になる。[検索する文字列]に
(\r\n)
、\x{0d}\x{0a}
のどれかを設定した場合:
検索進捗ウィンドウが表示されず、検索ウィンドウが応答なしになり、回復する見込みがないため強制終了するしかなくなる。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。v24.4.902 (64bit)について、この不具合の修正確認を行った結果、下記の通り不具合が発生しております。
再度、修正対応をお願いします。〔確認結果〕
[正規表現エンジン(G)]にOnigmo.Perlを設定した場合:
(L1)または(L2)を設定した場合:
[次を検索]を押下した直後に下記の内容で[OK]または[キャンセル]ボタンのあるメッセージボックスが表示される。
「Onigmo 正規表現エンジンの内部でアクセス違反例外が発生しました。この問題を回避するには、正規表現の簡素化を試みてください。[OK]をクリックすると、無視して継続します。[キャンセル]をクリックすると、異常終了します。」
[OK]を押下すると、検索処理が続行されるがすぐに応答なしになる。
[キャンセル]を押下すると、クラッシュレポート画面が表示されて、その後に表示される画面から[EmEditorを終了]ボタンを押下して終了になる。[正規表現エンジン(G)]にBoost.Regexを設定した場合:
(L1)または(L2)を設定した場合:
検索進捗ウィンドウが表示されず、検索ウィンドウが応答なしになり、回復する見込みがないため強制終了するしかなくなる。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。v24.4.902 (64bit)について、この不具合の修正確認を行った結果、下記の通り新しい不具合が発生しております。
再度、修正対応をお願いします。〔確認結果〕
(F1)0.のjawiki-20241020-abstract.xml、(F2)0.のjawiki-20241020-pages-meta-current.xmlおよび(R1)、(R2)の組合せで、Onigmo.Perl, Boost.Regexのどちらでも、9.の実行直後に検索ウィンドウとEmEditor本体が「応答なし」になり、手動で強制終了する以外になくなります。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。まず最初に、Windowsメモリ診断ツールでもテストしてみてください。ディスクによって結果が異なるということですので、CrystalDiskInfo などディスク診断ツールでも各ディスクをテストしてみてください。お使いのマシンに問題がないことを完全に確認することが重要です。
MemTest86 Freeによるメモリテスト結果は、受け入れられないということで理解いたしました。
江村様のご指定のWindowsメモリ診断ツールでのテスト実施する前に、テスト項目が#32096のご回答より増えてかつ、「お使いのマシンに問題がないことを完全に確認すること」を要求されましたので、双方の確認する手間を最小にしたいため確認させてください。(1)どのようなツールを使い、(2)どのような手順を実行して、(3)どのような内容でご連絡したら「私のマシンに問題がないことを完全に確認できた」と判断されるのか教えていただけないでしょうか?
(1)については、ツール名称とWindows標準でない場合は、ダウンロード先URL
(2)については、ツールごとの操作手順、デフォルト以外の設定内容
(3)については、江村様にどのようなご連絡をしたらよいのか?
私は、いい加減な不具合連絡をしているつもりはなく、可能な限り不具合の再現可能な手順や関連情報を提供してきました。
江村様は、最初は「Windowsメモリ診断ツールなどで、メモリに異常がないかテストしてみてください。」と説明されたので、私は実績のあるメモリテストツールのMemTest86 Freeを選択してメモリテストを実施しました。
しかし、このツールのメモリテスト結果は認められないのであれば、(1)~(3)をご提示いただけないと、また他のテストをしてくださいや、私のマシンに問題があるのでサポート対象外ですと判断されると私の時間が無駄になってしまいます。本来のファイルサイズは2,380 MBであるにもかかわらず、2,453 MBが読み込まれているため、ファイルのロード中にファイルサイズが増加しているようです。CaseNo 2.2で不具合が発生しているということですが、これはEmEditorの問題というよりも、ディスクまたはメモリの不具合の可能性が考えられます。
私は、EmEditorの読取処理の中に不具合があり、本来は2,380 MBで停止するはずが、何らかの原因でファイルの一部のデータ(テキスト)を重複して読み込んでいると考えていました。
下記がその考える根拠になります。
引用元:#32090 – 〔致命的バグ〕XML File(2.3GB~)を初めて開くと総行数が増加具体的には、jawiki-20241020-abstract.xmlは、合計行数は20,871,119行ですが、v24.4.902で初めて(ディスクキャッシュにない状態)開くとステータスバーの行数表示欄が「0/21,809,459 行」と表示されます。その状態で別名保存し、WinMergeでテキスト差分を確認したところ、大きな差分が見つかりました。
その一例として、下記の文字列をオリジナルXMLファイルと別名保存XMLファイルで検索した結果、オリジナルファイルでは1件のみですが、別名保存したXMLファイルでは2件見つかりました(編集していなのに開いただけでユーザの意図しない重複行が発生する)。
<sublink linktype=”nav”><anchor>ああっ女神さまっ 小っちゃいって事は便利だねっ</anchor>
ただし、毎回同じ文字列が重複するかはわかりません。ところが、江村様は「これはEmEditorの問題というよりも、ディスクまたはメモリの不具合の可能性が考えられます。」と別の原因だと説明されていますが、私はディスクやメモリの挙動や不具合影響については詳しくありませんので、どういうことが起きているのか全く理解できません。
江村様が可能性があると考えられている発生メカニズムを教えていただけないでしょうか?引用元:#32097 – 〔致命的バグ〕XML File(2.3GB~)を初めて開くと総行数が増加
江村様の提示いただいたXMLファイルの情報についてですが、jawiki-20241020-abstract.xmlとenwiki-20241020-abstract.xmlは、私が展開した同じファイルよりもそれぞれ 7 [Byte]少なく、総行数も 1 [行]少なくなっております。
私が、提示したSHA256のハッシュ値と一致するかご確認をいただいて、再度不具合の検証手順の実施をお願いいたします。私が、わかりにくい文章を書いてしまったのが原因ですが、上記の件についてご確認いただいて、その結果をご連絡いただけますでしょうか?
ハードウェアの問題も関係してきたため、ファイルデータの完全性を保証するためにSHA256のハッシュ値とファイルサイズを取得するPowerShellスクリプトを作成して、その結果を添付してすべてのドライブで全く同一だということを示しました。
江村様は私に「マシンに問題がないことを完全に確認すること」を求めてきておりますので、その前提の環境で私の不具合連絡を検証されたと考えています。下記の2つを確認いただき、ご連絡いただけますでしょうか?
(A)ダウンロードした圧縮ファイルとそれを展開したXMLファイルについて、〔ファイルのハッシュ値の一覧〕と同一のハッシュ値なのか確認していただき、その情報をご回答いただきたい。
(B)同一であることが確認できた場合は、再度私の不具合検証手順を実施いただいて、その結果をご連絡いただきたいです。もし、(A)が同一でなかった場合は、ダウンロード経路上の通信または、保存先のドライブに問題がある可能性があるので、別途ダウンロード元でハッシュ値を保証されたISOファイルとそのハッシュ値テキストファイルをダウンロードして確認します。
具体的には、下記の2つのファイルをダウンロードしていただき、ダウンロード後にubuntu-24.10-desktop-amd64.isoのSHA256のハッシュ値を取得して、SHA256SUMSの中にあるubuntu-24.10-desktop-amd64.isoのSHA256ハッシュ値と一致するかどうかで確認します。Ubuntu 24.10のISOファイル(ubuntu-24.10-desktop-amd64.iso)
http://ubuntutym2.u-toyama.ac.jp/ubuntu/24.10/ubuntu-24.10-desktop-amd64.isoイメージファイルのSHA256ハッシュ値テキストファイル(SHA256SUMS)
http://ubuntutym2.u-toyama.ac.jp/ubuntu/24.10/SHA256SUMS上記の配布元のHP(Ubuntu 24.10 (Oracular Oriole))
http://ubuntutym2.u-toyama.ac.jp/ubuntu/24.10/もし、ハッシュ値が一致しなかった場合は、保存先のドライブまたは、ダウンロード経路上の通信に問題があることになるので、解決したうえで(A)の再度実行して確認いただきたい。
江村様が誠意を示されてきたので、私も誠意をもって対応させていただいております。
よろしくお願いします。
yasujiParticipantすみません。J:のドライブ情報に余計な文字が含まれていましたので、下記の通りに訂正します。
D: ST8000DM004-2CX188, 8TB G: WD My Passport 2627 USB HDD (WDC WD40NDZW-11MR8S1), 4TB H: WDC WD120EFBX-68B0EN0, 12TB J: ST8000DM004-2CX188, 8TB
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。メモリテストツールのご紹介ありがとうございます。
私は、10年近く使用している実績のあるMemTest86 Free(V9.3)を使用してメモリのテストを実施しました(以前メモリエラーを発見したバージョンに固定して使用)。
その結果、すべてのテストをパスして、エラーは見つかりませんでした。この結果を受けて、EmEditorはv24.4.902に固定して、ファイルのエラーを完全に排除するために、〔再現手順〕を再度実行して、圧縮ファイルの展開を含めてやり直しました。
ただし、初回はD:のみだったので、手元にあったHDDドライブを事象発生比較のためにG:, H: J:として追加しました。
それぞれのファイルのデータが完全一致していることを確認するために、SHA256のハッシュ値を取得して確認しました。今回使用したドライブと型番は下記のとおりです。
なお、すべてのドライブにおいて、chkdsk /f
を実行済みです。D: ST8000DM004-2CX188, 8TB G: WD My Passport 2627 USB HDD (WDC WD40NDZW-11MR8S1), 4TB H: WDC WD120EFBX-68B0EN0, 12TB J: ZST8000DM004-2CX188, 8TB
ハッシュ値は、コピー完了後にWindowsを再起動してから次のPowerShellスクリプト(PowerShell v7.4.6で使用)で取得しました。ハッシュ値の取得には、Windows標準のcertutil.exeを使用しています。
$flist = Get-ChildItem -File; $flist | % -begin { $i = 0; $hashtype = "sha256"; } { $exe_result = certutil.exe -hashfile "$($_.FullName)" $hashtype; Write-Host "$([string]::Format("{0,-9}: {1}", "File name", $_.FullName))"; Write-Host "$([string]::Format("{0,-9}: {1} [Byte]", "File size", $_.Length))"; Write-Host "$([string]::Format("{0,-9}: {1}", $hashtype.ToUpper(), $exe_result[1]))"; if ($flist.Length -gt 1 -and $i -ne ($flist.Length - 1)) { Write-Host ""; }; $i += 1; }
使用したファイルのハッシュ値の一覧は、末尾の〔ファイルのハッシュ値の一覧〕に示した通りです。
江村様の提示いただいたXMLファイルの情報についてですが、jawiki-20241020-abstract.xmlとenwiki-20241020-abstract.xmlは、私が展開した同じファイルよりもそれぞれ 7 [Byte]少なく、総行数も 1 [行]少なくなっております。
私が、提示したSHA256のハッシュ値と一致するかご確認をいただいて、再度不具合の検証手順の実施をお願いいたします。念のため、圧縮ファイルは保存先ディレクトリを分けて、2回ダウンロードしてハッシュ値が一致することを確認しています。なお、私の行数の情報は、EmEditorを使用してXMLファイルを開いた2回目の時に表示されるステータスバーに表示される「行数」を正しい情報としています。EmEditor v24.4.902を使用して、初回の手順通りに実施した結果は、下記の通りになりました。今回は、件数が多いためExcelで表を作成して、下記に貼り付けました(列はタブ区切りなので、コピーしてExcelに貼り付けると見やすくなると思います)。
CaseNo ファイル名 ファイルパス名 行数 カーソル位置 1.1* enwiki-20241020-abstract.xml D:\TestData\enwiki-20241020-abstract.xml 0/86,673,255 行 86,673,255行, 1桁 2.1* enwiki-20241020-abstract.xml G:\TestData\enwiki-20241020-abstract.xml 0/89,351,439 行 89,351,439行, 1桁 3.1 enwiki-20241020-abstract.xml H:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 4.1* enwiki-20241020-abstract.xml J:\TestData\enwiki-20241020-abstract.xml 0/86,701,277 行 86,701,277行, 1桁 4.1.2 enwiki-20241020-abstract.xml J:\TestData\enwiki-20241020-abstract.xml 0/85,969,886 行 85,969,886行, 1桁 1.2* jawiki-20241020-abstract.xml D:\TestData\jawiki-20241020-abstract.xml 0/21,809,459 行 21,809,459行, 1桁 2.2* jawiki-20241020-abstract.xml G:\TestData\jawiki-20241020-abstract.xml 0/21,809,459 行 21,809,459行, 1桁 3.2 jawiki-20241020-abstract.xml H:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 4.2* jawiki-20241020-abstract.xml J:\TestData\jawiki-20241020-abstract.xml 0/22,326,599 行 22,326,599行, 1桁 4.2.2 jawiki-20241020-abstract.xml J:\TestData\jawiki-20241020-abstract.xml 0/20,871,119 行 20,871,119行, 1桁 1.3 jawiki-20241020-pages-meta-current.xml D:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 2.3 jawiki-20241020-pages-meta-current.xml G:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 3.3 jawiki-20241020-pages-meta-current.xml H:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 4.3 jawiki-20241020-pages-meta-current.xml J:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 4.3.2 jawiki-20241020-pages-meta-current.xml J:\TestData\jawiki-20241020-pages-meta-current.xml 0/307,099,309 行 307,099,309行, 13桁 ※1 CaseNo 2.2のファイル読込中の最後付近のステータスバー表示内容が、「ファイルを読込中...(2,453 MB / 2,380 MB, 21,415,157 行) (103 %) 65 MB/s 残り時間: 0秒」と表示され、進捗率が100%を超えていた。 ※2 不具合が発生したCaseNoには、その末尾に「*」を追記している。
不具合が発生するドライブは、D:, G:, J:であることが判明しました。D:とJ:は、同じメーカーで同じ型版です。
HDDのハードウェアもこの不具合の発生させる要因の一つであると判明しました。上記にも書きましたが、CaseNo 2.2のファイル読込中の最後付近のステータスバー表示内容が、「ファイルを読込中…(2,453 MB / 2,380 MB, 21,415,157 行) (103 %) 65 MB/s 残り時間: 0秒」と表示され、進捗率が100%を超える現象も発生しましたが、EmEditorの不具合ではないでしょうか?
この不具合の発生原因の詳細情報のご提供をお願いいたします。
〔ファイルのハッシュ値の一覧〕
ダウンロードした圧縮ファイル:File name: C:\DLData\enwiki-20241020-abstract.xml.gz File size: 888851612 [Byte] SHA256 : 5db1f530bde86e127be0e1a9f9360b80ee3b053db63085d894ee81025730949f File name: C:\DLData\jawiki-20241020-abstract.xml.gz File size: 273506145 [Byte] SHA256 : bc9c0ae7be517c68bb2c79c16b9775099f590f240dee684baa8f5c03f44a6bc9 File name: C:\DLData\jawiki-20241020-pages-meta-current.xml.bz2 File size: 5041613044 [Byte] SHA256 : 37103e74e6d54c3d1cd60a5ed5ff036becd4cc1230396662182feced17f773ac
展開したXMLファイル:
※「—」は、ドライブごとの区切行の目印です。File name: C:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: C:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: C:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033 --- File name: D:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: D:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: D:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033 --- File name: E:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: E:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: E:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033 --- File name: G:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: G:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: G:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033 --- File name: J:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: J:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: J:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033 --- File name: H:\TestData\enwiki-20241020-abstract.xml File size: 7201978423 [Byte] SHA256 : 87e58b7649e8d8d11a0a3df1a0d941cff1e057a0a8305b9fdfc83ee1db4b946a File name: H:\TestData\jawiki-20241020-abstract.xml File size: 2495630392 [Byte] SHA256 : 10be66f671c9afaa1a1bf8f045e9816b9c46774d7f1e914111dd11afc90adc21 File name: H:\TestData\jawiki-20241020-pages-meta-current.xml File size: 23544648340 [Byte] SHA256 : 72deffd3eb53649de07d13b51174e2e4085d080650b984f1b53263fc23e74033
——
私が使用したツールとバージョンは、下記の通りです。
MemTest86 V9.3 Free
Explzh v9.56
PowerShell v7.4.6各ツールのダウンロード:
MemTest86 Free
https://www.memtest86.com/download.htm
Explzh
https://www.ponsoftware.com/archiver/download.htm
PowerShell v7.x
https://github.com/PowerShell/PowerShell/releasesyasujiParticipant江村様
いつもお世話になっております。
yasujiです。江村様の環境では、再現されなかったということで了解しました。
chkdsk /f d:
は、実行して改めて、再度手順を実行したところ、報告した通り再現しました。
おそらく、ディスクキャッシュが配置されるメモリに何か異常が何かある可能性がありそうです。以前、別のPCでUSB3.1接続のUSB HDDの接続状態が不安定でUSB HDDの取り外しや読込でわずかにエラーが出た経験がありました。この時は、1,2カ月ほどUSB HDDとUSBポート、ケーブルを疑ってあれこれ調べましたが、原因がさっぱり判明しませんでした。その後、別のきっかけでメモリのチェックを実行した結果、アドレス番地で5GB付近と、16GB付近に数バイトずつの故障があることが判明し、正常なメモリに交換したところUSB HDDの接続不具合が解消しました。
この時は、表面上の不具合は、USB HDDの不調という形で表れていたため、真の原因のメモリの部分故障による接続情報を管理するデータやキャッシュが壊れていたことにたどり着くのに6カ月かかってしまいました。私のPCのメモリは長期保証のもの使用しているのですが、上記の通り部分的に故障が発生した過去があったので、メモリが簡単には故障しないという考えが盲点になっていたようです。
今回の報告した事象については、メモリの部分故障の可能性があったにもかかわらず、気づくことができないで、お騒がせして大変申し訳ありませんでした。
言い訳になってしまいますが、ハードウェア故障は、ハードウェア1つならまだわかりやすいのですが、複数のハードウェアが関係して複合すると真因が霧にかかったように見えなくなり、簡単に見つけられない難しさがあります。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。v24.4.902 (64bit)について、上記の不具合の修正確認を行った結果、下記の通り新しい不具合が発生しております。
再度、修正対応をお願いします。〔確認結果〕
(A)0.のjawiki-20241020-abstract.xml
[正規表現エンジン(G)]:Boost.Regex
正常完了して問題なし[正規表現エンジン(G)]:Onigmo.Perl
正常完了して問題なし(B)0.のjawiki-20241020-pages-meta-current.xml
[正規表現エンジン(G)]:Boost.Regex
正常完了して問題なし[正規表現エンジン(G)]:Onigmo.Perl
検索中の99%で、下記のアクセス違反例外のメッセージが表示されて、検索が正常に完了しない。
—–
「Onigmo正規表現エンジンの内部でアクセス違反例外が発生しました。この問題を回避するには、正規表現の簡潔化を試みてください。[OK]をクリックすると、無視して継続します。[キャンセル]をクリックすると、異常終了します。」
[OK][キャンセル]
—–
[OK]を押下した場合:
応答なしになり、強制終了する以外に方法がなくなる。[キャンセル]を押下した場合:
クラッシュレポートが表示されて、終了する。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。さきほど、v24.4.902で、(1)~(3)の不具合がすべて解消されて、問題がないことを確認しました。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。もし、攻撃的な内容だと感じさせてしまっていたら、この点は申し訳ありません。正確にコンパクトに書くように意識して技術的な話だったため、端的な表現を多く使用して社交辞令的なことなど余計なことは省いて書いておりました。
「誠意を持ってお答えしている」とのことですが、江村様の過去の対応がありますので、正直なところすぐには信じることはできません。こればかりは、今後とも継続していただくことで徐々に信じれらるようになると思います。
RAMが32GB以下だと絶対に開けないわけではなく、64GB以上なら必ず開けるというものでもありません。ファイルサイズに加えて、行数や仮想メモリーの量など、他の要因も影響します。実際には、ファイルサイズは開く速度に影響しますが、開けるかどうかは行数が大きな要因です。また、ファイルを開くだけで編集しない場合は、一時フォルダの空き容量は不要です。
私は、「1TB~16TBのテキストファイルを開く」という操作について、下記の通りに理解しましたが、正しいでしょうか?
——
ユーザのPC環境(メモリサイズ、仮想メモリ設定、その他)によって、開ける最大ファイルサイズが決まるので、明確な説明ができません。
ただし、一時フォルダの空き容量は、ファイルを開くだけで編集しない場合は 0 [Byte] で問題ありません。
——
「また、ファイルを開くだけで編集しない場合は、一時フォルダの空き容量は不要です。」が、正しいというならば「〔致命的バグ〕メモリ不足でもファイル読込を停止しない」の事象はどのように考えた良いでしょうか?
この事象は、私が[ディスクベースを有効にする(B)]をOFFに設定したことが悪かったということでしょうか。一般的なアプリでは、「16GB~32GBは自動割り当て(手動設定する場合は物理メモリの半分)」で問題ないかもしれません。しかし、EmEditorで巨大ファイルを扱う場合は、この設定では不十分で、80GB以上の仮想メモリーを推奨します。理由として、EmEditorは巨大ファイルを開く際に大量のヒープメモリーを必要とし、Windowsの仮想メモリーの増加速度が追いつかないため、メモリー不足が発生しやすい状況です。この問題は、Visual C++でCode Analysisを使用してビルドする際にも発生しやすいです。詳細は以下のWebページをご覧ください。
このように、大きなメモリーを必要とするアプリでは、あらかじめページングファイルの初期値を大きく設定しておく必要があります。私はこれをOSの問題と考えています。
大きなメモリーを使用するアプリケーションには、現時点でOSに問題があると考えられているので、それを軽減または回避するために上記のページングファイルサイズを推奨していると理解しました。
宣伝と思われるかもしれませんが、事実を記載しており、誇張ではありません。「メモリの許す限り」との注記もあります。事実を伝えないとユーザーに正しい仕様が伝わりません。EmEditorの仕様や機能をWebサイトに明記することが重要だと考えています。「8GB~32GBのRAMを搭載した一般的なPC」という指摘はその通りですが、EmEditorユーザーの中には64GB以上、さらには256GB以上のRAMを搭載したPCをお持ちの方も多くいらっしゃいます。EmEditorは、ユーザーの要望に応じて巨大ファイルを扱えるように長年改良を重ねてきました。これは決して「カタログスペックの見栄えを良くするためだけの機能」ではなく、多くのユーザーがこの機能を求めてEmEditorを選んでくださっています。
EmEditorのユーザの中には、256GB以上のRAMを搭載したPCをお持ちの方が多くおられて、そういったユーザのニーズで巨大ファイルを扱う機能を改良してたということは理解できました。
そうであれば、HPの宣伝のページに江村様がご回答いただいた内容を整理して書かれたら、私のような128GBのRAMでは、巨大ファイルを扱うのは難しいと理解できるようになりよりよくなると思います。ここまで、江村様の誠意を受けて、正直ベースで私が理解できた内容で返信を書かせていただきました。
まだ、16TB対応の機能についてわからない点があり、追加で質問させてください。(Q1)[カスタマイズ]->[高度]の中にある[最大メモリサイズ(Y)]というのは、EmEditorがファイルを開く際に使用できる最大物理メモリサイズだと考えていましたが、これは私の理解の誤りでしょうか?もし理解の誤りならばどのような設定なのか説明ただければと思います(「〔致命的バグ〕メモリ不足でもファイル読込を停止しない」のケースで[最大メモリサイズ(Y)]でファイル読込停止または、エラー表示のいずれもしなかったため)
(Q2)下記のPC環境だと仮定して、enwiki-20241020-pages-meta-current.xml(このトピックの最初の投稿)を開くことが可能でしょうか?また、一時フォルダの容量はどのくらいあるとよいのでしょうか?(EmEditorでの操作内容:このファイルを開き、キーワード検索して必要な情報を選択コピー(見つけた情報量によるが1000文字程度)して、新規作成テキストへ貼り付けて、新規テキストを保存して終了する)
〔PC環境〕
OS: Windows 10 64bit クリーンインストール、現時点までのWindows Update済み。
RAM: 32GB
HDD: 8TB(C Drive only)よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。そのようなことは思っていません。修正を拒絶することはありません。どうして、yasuji様は、そのように感じられるのでしょうか? もし、私の書き方が、yasuji様に、そのような印象を与えてしまったのでしたら申し訳ありませんでした。
先ほど公開した v24.4.902 にて修正いたしました。
修正いただきありがとうございます。確認は別途いたします。
「どうして、yasuji様は、そのように感じられるのでしょうか?」については、下記の通りです。
1.過去の検索(置換)ウィンドウの切替キー操作時の不具合についてのメールでのやり取りの「#31387 – 〔要回答〕報告済:検索(置換)ウィンドウの動作不具合」において、ユーザのお好みの動作が異なるという理由と、この方法で代替できますよというご説明で修正をお断りされました(実際に修正いただいたのは、このメールの内容をトピック作成した後でした)。私個人としては、他のテキストエディターができていることで、無理を言っているつもりはなく、このような説明で修正を拒絶されたと受け止めて、かなりショックでした。
2.「ここ最近のEmEditorのリリース情報について」のトピックにおいて、「不具合は非常に軽微なもの」としてご説明しておりましたが、追及した結果、その非常に軽微なものの中に2バージョンでクラッシュバグが合計5件も含まれていたことが判明し、かなりショックでした。上記の2つが今回私の対応の背景になります。
これは、使用されているフォントのデザインの問題です。設定のプロパティの [表示] ページの [行間] で調節可能です。ここには -1 のように負の値を入力することもできます。ただし、行頭の全角空白(U+3000)の四角記号の左側が欠けて表示される問題は、こちらでは既に修正しました。次に公開されるバージョンでは修正されています。
上記のご回答は、まず問題点と代替案を説明して、次の「ただし、」からは私が記載した(2)の四角記号の表示が欠ける問題について修正したと説明しています。
私の中での説明文は、フォントの問題でEmEditorの問題はないので不自然な行間表示は提示した方法でユーザ側がご対応ください、(2)は次に公開されるバージョンで修正しました、(3)については記載がないので修正するつもりはない(穏便に記載漏れとしました)と理解しました。
過去の江村様のご対応の1.と2.については私の中では強く記憶していたため、私の中でまた1.と同じ対応(言い訳めいた理由を書かずに)を繰り返すのかと怒りが沸き起こりそのように書いた次第です。以上が私の回答内容になった理由です。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。ご回答ありがとございます。
(Q1)
ご指摘の通りです。(Q2)
その通りです。了解しました。
(Q3)
500行ごとに進捗を更新するように最適化しています。不具合ではありません。それでは、「根拠は、[スレッド数(N)]を 2 に設定して、上記同様の検索を実行すると、「000」または「500」の表示に固定されずに表示されるため。」と記載しましたが、[スレッド数(N)]が2の場合は、 下3桁の数値が「062」や「489」などのように表示されるのはなぜでしょうか?ご説明とこの場合の表示方法が一致しません。
(Q4)
検索用スレッド数が[スレッド数(N)]が1の場合、内部ではその値に1を足して2スレッドで検索しているのではないかというご質問ですが、これは考えられません。そうすると、EmEditorは、Unicode未対応のBoost.Regexの正規検索エンジンをどのようにUnicode対応させてNotepad++よりも高速に処理できるのでしょうか?
私の考えだと、(1)Boost.Regexのソースコードに改良加えてUnicode対応している、(2)Boost.RegexとICUの代わりを独自実装してUnicode対応しているのいずれかをしているのかと思います。
長年高速処理を追求し続けて改良を加えられているので、検索エンジンについても説明いただければ、大きなセールスポイントになると思います。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。ご回答ありがとうございます。
これでようやく16TBファイルの対応について下記の通り理解ができました。1TB~16TBのテキストファイルを開くには、RAMは64GB以上、一時フォルダの空き容量は170GB~2716GB(ファイルサイズの約16%)が少なくとも必要だということが分かりました。
したがって、1TB未満のテキストファイルについても、同じ傾向があると考えられます。
8GB~32GBのメモリを搭載したPCは、1TB~16TBのテキストファイルは開くことはできない、1TB未満のテキストファイルはユーザ自身でメモリの空き容量と上記の要件を考慮して開く必要があるということで理解しました。なお、「仮想メモリを増やす方法」で、ページングファイルサイズを80000MB(80GB)にするように推奨されております。しかし、通常のページングファイルサイズの設定値は、8GB~16GBは搭載物理メモリと同じサイズ、16GB~32GBは自動割り当て(あえて手動設定する場合は、搭載物理メモリの半分のサイズ)に設定するのが良いとされています(ページングファイルサイズをいくら大きくしてもRAMを増やしたことにはならず、RAMの一部を補う程度のため)。
HPに記載されている「16 TB までのファイル」の宣伝は、EmEditorのカタログスペックの見栄えを良くするためだけの機能だということが分かりました(8GB~32GBのRAMを搭載した一般的なPCでは開くことができないというご回答のため)。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。承知しました。次の新バージョンが公開されたときに確認します。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。承知しました。次の新バージョンが公開されたときに確認します。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。承知しました。次の新バージョンが公開されたときに確認します。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。承知しました。次の新バージョンが公開されたときに確認します。
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。これは、使用されているフォントのデザインの問題です。設定のプロパティの [表示] ページの [行間] で調節可能です。ここには -1 のように負の値を入力することもできます。
冒頭に「Windows標準のメモ帳(notepad)で同じフォントを設定した場合の表示には不自然な表示はない。」と記載したのは、フォント特有の表示を考慮するために、メモ帳の表示状態を基本にして、その表示状態と比較してEmEditorは明らかに行間の空白が大きすぎるので、表示不具合だと説明しています。ちなみに、サクラエディタ32bit Ver. 2.4.2.6048 Appveyor (a3e63915b)でも、メモ帳とほぼ同じ状態で表示されます(この程度の表示であれば何の問題もありません)。
修正を拒絶する理由は、修正工数が大きすぎてかつ複雑なため、やりたくないからでしょうか?
それとも、過去の「#31387 – 〔要回答〕報告済:検索(置換)ウィンドウの動作不具合」と同じ理由でしょうか?記載漏れだと思いますが、下記の修正もお願いいたします。
(3)半角空白(U+0020)の記号が縦方向に伸びて表示される(Windows標準のMS ゴシックを基準)
よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。(質問1)
こちらのリンク
https://jp.emeditor.com/text-editor-features/large-file-support/files-up-to-248gb/
にある画面図の通り、15.9 TB、17,592,101 行の ASCII ファイルを処理するのに、83,190.860秒かかりました。使用したPCは、確かWindows 10 (64-bit)、Core i9-9900K、64GB RAM、2TB SSDだったと思います。ファイルが保存されているディスクは、Western Digital の 18TB ハード ドライブ (WD181KRYZ) です。上記のご回答ありがとうございます。しかし、「16TBファイルを開くのために必要な空き容量」(=開く処理が完了した時点での一時ファイルの合計サイズ)、「Windowsの仮想メモリ設定内容」の情報が不足しておりますので、ご提供をお願いいたします。
もし、手元に記録がないようでしたら、お手数ですが、再度同様の検証をいただいて、情報提供いただきたいです(PC環境が変わればそれらの情報も)。(質問2)
ファイルのサイズよりも、行数が重要になります。つまり、1行あたり1000文字のファイルよりも、1行あたり10文字のファイルの方が、より多くのメモリを必要とします。ファイルを開くことに失敗する場合は、仮想メモリを増やす必要があります。仮想メモリの増やし方については、こちら
https://jp.emeditor.com/increase-virtual-memory/
を参考にしてください。デフォルトの設定の通り、「ディスクベースを有効にする」がオンになっていれば、ファイルを開くだけで編集が不要な場合、一時ファイルの作成は必要ないはずです。答えていただきたい回答になっていません。私の(Q2)の質問のみを抜粋して下記に再掲いたします。再度回答をお願いします。
一般的なデスクトップPCに搭載されている8~32GBのメモリサイズで、1TB~16TBのファイルを開くことができるのか?
物理メモリをすべて使用するなどでWindowsシステムへの悪影響の有無はあるのか?
について、情報を開示いただけますでしょうか?
江村様でしたら、EmEditorの開発者ですので、必要とする物理メモリサイズ、一時ファイルサイズを正確に計算することができると思います。よろしくお願いします。
yasujiParticipant江村様
いつもお世話になっております。
yasujiです。ご提示いただいたブログの説明とリンク先の内容を確認しました。
確かに、私がバグだと報告した動作が、v23.1の動作仕様通りであると理解しました。その動作仕様で確認です。
EmEditorを動作させたPC環境がC:しかなく、そのC:に開きたい200.3GBのXMLファイルがあり、[一時フォルダ(F)]はデフォルトのままだとします。
この状況下でEmEditorを起動して、200.3GBのXMLファイルを開くと、メモリ不足、ページファイル不足になり、[一時フォルダ(F)]のパスに一時ファイルを大量に作成して、最終的にはファイルを開く処理が完了して編集可能な状態になる。ただし、メモリ不足分のデータが、一時ファイルとして書き出された状態です。当たり前ですが、ファイルを編集しようとしてスクロールしたり書き換えたりすれば、その一時ファイル(ページファイルも含む)の読み書きが発生します(メモリに読み込まなければ処理できません)。HDDであれば、読取速度と書き込み速度はメモリより圧倒的に遅いです。(高速転送できるSSDを前提にしないでください。すべてのユーザが高速なSSDを持っているとは限りません)
「v23.1 では、メモリに関連するアルゴリズムを見直し、より効率的な動作を実現しました。」とありますが、HDD上の一時ファイルならびにページファイルを使うことは処理速度の低下を招くことは自明なのですが、どうして効率的な動作が実現できるのでしょうか?リンク先の文章を改めて読んでみたところ、とんでもないことが書かれておりましたので確認させてください。引用された文章の中にも含まれています。
「仮想メモリのサイズに気を遣わずとも、メモリ不足によるクラッシュの頻度を大幅に軽減することができました。」と書かれておりますが、これはv23.1をリリースした時点で、そのバージョンにはメモリ不足を契機としたクラッシュバグがまだ存在していますと江村様は認識してリリースしたと理解しました。実際に、「置換で改行が増加するとクラッシュする」で発生しております。この報告内容の事象で本当に江村様の下記のご説明は、間違いなく検証されて保証されているのでしょうか?Windowsの動作が不安定になったり、BSODの心配はありません。
よろしくお願いします。
yasujiParticipantすみません。ひとつ誤記がありました。BOSDは誤記で、正しくはBSODです。Blue Screen of Deathの略語です。
yasujiParticipant江村様
お世話になっております。
yasujiです。Emurasoft, Inc.のご回答として理解いたしました。
言うべきこと言って、聞くべきことを聞きましたので、もはやすることはなくなりました。
あとは、他のユーザにお任せいたします。 - 作成者投稿