misc.log

日常茶飯事とお仕事と

Google ChromeがSTATUS_ACCESS_VIOLATIONなどのエラー、原因はメモリー

Google Chromeが、昨日あたりから急に「STATUS_ACCESS_VIOLATION」やら「OUT_OF_MEMORY」やら、不穏なエラーを表示してWebページが表示されない(エラーメッセージのみの真っ白になる)」という現象が頻発していました。

とりあえず、やったことを記録しておきます。なお、結論からいうと「改善しませんでした」&「メモリー破損でした」でした。

Chrome.exeのセキュリティ設定を少し変えてみた

後述のサイトにある情報を参考にして、下記フォルダーにあったGoogle Chrome本体のプロパティから、セキュリティ設定を変更。「Users」にフルコントロール権限を付けてみました。

C:\Program Files\Google\Chrome\Application\chrome.exe

参考にしたのはこちら。やり方は違いますが、権限問題かな?と思ってヒントにしました。

cosmo-a.com

アクセス許可のアカウント構成

未解決ですが記録。Chromeのプロパティ、セキュリティ設定の詳細を見ると、グループ/ユーザー名のリストが下記のようになっていました。

Chromeのセキュリティ設定にあったグループ/ユーザー

内容は

  • ALL APPLICATION PACKAGES
  • 制限されたすべてのアプリケーション パッケージ
  • 不明なアカウント(S-1-15-3-1024-230...)
  • 不明なアカウント(S-1-15-3-1024-342...)
  • SYSTEM
  • Administrators
  • Users

SYSTEM、Administratorsは既にフルコントロールがついていたのでそのまま。Usersが読み取りと実行のみだったので、とりあえずフルコントロールに変えてみました(自宅の個人PCなので、別に権限をキッチリする必要は無いため……)。

不明なアカウント……については下記のサイトとかが参考になるかもしれません。ざっと目を通した感じでは、気にする必要無さそうなので触れないでおきます(ADとかWindowsの内部構造には詳しくないので、ヘタに触れない方がよさそうと判断)。

本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……
【不明なアカウント S-1-15-3-1024・・・】?(Microsoft Forum)
https://answers.microsoft.com/ja-jp/windows/forum/all/%E4%B8%8D%E6%98%8E%E3%81%AA%E3%82%A2%E3%82%AB/44cd9f66-d0b0-4840-ab4e-34776d2ec92c?page=1

効果無し(1時間後ぐらいにまた落ちる)

効果はありませんでした。ここ数日、このChromeのエラーが出てしばらくするとブルースクリーンで落ちるという現象も併発していますが、それが発生。

で、Chromeのエラーメッセージと、イベントビューワーに出ている強制終了の原因となったプロセスやファイルの「一貫性の無さ」から……ふと思いついたこと……「これ、メモリー逝ってないか?」。というわけで、Windows付属のメモリー診断を使ってみました。

速攻で異常検知

昔だったらMemtestなどを使うところですが、現在のWindows10にはメモリ診断なる機能が標準装備されています。Windows管理ツールのメニューにあるので、起動して「すぐに再起動」を選択。再起動後にWindowsではなくメモリ診断プログラムが動き始めてメモリーのチェックを行ってくれます。で……その画面が出て数秒後がこれ。

メモリ診断ツールが即異常を検知!

2%で検知ってwww ひどすぎやしませんか。で、このまま放置して1時間ぐらいすると、全テスト工程を完了し、自動的に再起動。メッセージにも「テスト結果はログオン後に」と書いてあるので、期待としては「4枚のメモリーモジュールのうち、3枚目にエラー」とか出てくるのだろうな……と思いきや……。

メモリ診断の結果レポート

もうちょっと……ほら……1時間も待たせておいてさ……もうちょっとなんかあるでしょ?ww と思ったので、追加でテストです。現在、使っているメモリーは下記のような構成になっています(SiSoftware Sandra Liteで確認)。

  1. TeamGroup製 DDR3-1600 8GB
  2. ADATA製 DDR3-1600 8GB
  3. TeamGroup製 DDR3-1600 8GB
  4. ADATA製 DDR3-1600 8GB

で、2017年に2枚で13,000円で購入したADATAの方が古いので、こちらを抜いてみます。そして、再度メモリ診断を実行。すると……

ADATAのメモリーを抜いてメモリ診断実施

結果はこの通り。最初は冒頭でいきなり異常検知していたのが出ません。ということは、犯人はこの「手に持っているメモリーモジュール2枚」ということですね。以上、問題の切り分けと特定完了です。

モリーを買い直します

本当であれば永久保証とかなんとかで交換してもらったりできるのかもしれませんが、保証書なんてもうおいてないし……。同じメーカーのでまた同じ目に遭うのも嫌なので、TeamGroup製の同型メモリーに買い換えることにします。安くなっていますし(2022/9/11時点で5,900円弱/8GBx2)。

作成した動画ファイルの名称を一括変更する(VBScript利用)

現在、原神の細切れなプレイ動画を作成してちまちまとYoutubeに挙げているのですが、カット編集したものをTMPGEnc Video Mastering Works 5で一括エンコードすると、本来のファイル名の前後に余計な文字が入って出力されます。それをこれまたちまちまと直すのが面倒だったので、昔作ったVBScriptスクリプトを少し改変し、ファイル名変更を一括でできるようにしてみました。

PowerShellとかでももっとスマートに出来ると思いますが、書式の指定などをここで試行錯誤する時間がもったいなかったので、敢えてVBScriptです。

処理前後

処理内容は、下図のようにファイルを名を書き換えるというものです。ファイル名の先頭に「Movie_##_(」という通番が入った文字列と、作業工程を記すために自分で入れた「★」、そして、ファイル名末尾に「)」の閉じ括弧が追加されているので、これを除外するというもの。

変更前のファイル群
変更後のファイル群

スクリプト

VBScriptはこんな感じです。

Dim fileSystem
Dim curFolder
Dim eachFile
Dim newName

Set fileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set curFolder = fileSystem.GetFolder(fileSystem.getParentFolderName(WScript.ScriptFullName))

For each eachFile in curFolder.Files
	If fileSystem.GEtExtensionName(eachFile.Name)="mp4" Then
		newName = Replace(Mid(eachFile.Name,12),").mp4",".mp4")
		eachFile.Name = newName
	End if
Next

FileSystemObjectを取得し、スクリプトと同じフォルダーにあるファイルのうち「.mp4」で終わるファイル全てについて

  • 先頭12文字をMid関数で削る。
  • 末尾の「).mp4」を「.mp4」に置換する。

この処理を加えています。

凝ったことをする必要もなく、確実に短時間でコンピューターに仕事をさせたい場合、別に言語も技術なんでもいいんですよ。道具として使えれば……という例でした。
参考まで。

改良版

もう少し改良したものをこちらで紹介しています。

www.backyrd.net


youtube.com

剣道の竹刀に使う油のスプレー

子供の部活が剣道になって、防具等一式を揃えましたが、メンテナンス用具も全く聞いた事がないものが結構出てきて面白いです。その1つがこれ。竹刀に塗る油「竹刀油(しないゆ)」。竹刀は使っているとささくれ立ってくるようで、それにヤスリを掛けてメンテするそうなんですが、そのあと、油でコートするらしいのです。それで使う油とのこと。靴磨きのクリームのような固形タイプもあるようなんですが、手軽なスプレーが便利らしいのでこちらを購入します。