そういう、ビジネスモデルです。

ビジネスモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

Alexa SDK (ask-sdk) をインストール時に深刻なエラー(ERR!) -4094(解決)

Alexa SDK (ask-sdk) をインストール npm install 時に、ERR! errno -4094 syscall fsync という見慣れないエラーが発生した。

最終的にはハードディスクの初期化(再フォーマット)を行って解決した。

ask-sdk のインストールに失敗

npm install --save ask-sdk

e:\Users\tombi\Projects\diceroller>npm install --save ask-sdk
npm WARN rollback Rolling back isarray@1.0.0 failed (this is probably harmless): EPERM: operation not permitted, unlink 'e:\Users\tombi\Projects\diceroller\node_modules\isarray\package.json.1464894368'
npm WARN diceroller@1.0.0 No description
npm WARN diceroller@1.0.0 No repository field.

npm ERR! code UNKNOWN
npm ERR! errno -4094
npm ERR! syscall fsync
npm ERR! UNKNOWN: unknown error, fsync

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\tombi\AppData\Roaming\npm-cache\_logs\2019-04-13T22_59_13_635Z-debug.log

ERR! 発生、見事に失敗したようだ。

fsync?OSレベルのエラー?

同一事象の事例を発見したが、解決しなかった。

npm.community

syscall fsync とかいうストレージ(ディスク)周りのかなり低レベルのエラーに思えたので、Cドライブのエラーをチェックしてみたが異状なし。

f:id:tombi-aburage:20190414081541p:plain

ドライブのエラーをチェック
npm cache verify

Cache verified and compressed (~\AppData\Roaming\npm-cache\_cacache):
Content verified: 11 (5764738 bytes)
Index entries: 15
Finished in 0.059s

別に問題ないようだが、常套手段のキャッシュ一掃を念のためやる。

npm cache clean --force

 npm WARN using --force I sure hope you know what you are doing.

その後、npm install したが、やはり解決しなかった。

これは難航しそうだ…

Eドライブのエラーもチェック

よく考えると、-g オプションなしでインストールしているので、インストール先のドライブはCではなくて、プロジェクトのファイルがあるEドライブだった。

f:id:tombi-aburage:20190414085250p:plain

 ドライブの修復を試みると、数秒で完了し、検出されませんでした。などと言われる。

f:id:tombi-aburage:20190414085745p:plain

そして、再び npm install (何らかの操作)をするとその瞬間に、

f:id:tombi-aburage:20190414085943p:plain

というメッセージが出る。どうも、ドライブそのものが相当怪しいようだ。

そういえば毎朝、このドライブでエラーが出ているな…いつも無視してきたが。

念のためドライブ変えるか。

プロジェクトごと、Dドライブにコピーして再実行したら、あっさり成功した

Eドライブと同じフォルダ構成を、Dドライブに作った。
そして package.json もコピーした。

dir

ドライブ D のボリューム ラベルは アプリ です
ボリューム シリアル番号は 7E41-295B です

D:\Users\tombi\Projects\diceroller のディレクト

2019/04/14 10:00 <DIR> .
2019/04/14 10:00 <DIR> ..
2019/04/14 07:26 219 package.json
1 個のファイル 219 バイト
2 個のディレクトリ 136,848,175,104 バイトの空き領域

npm install ask-sdk

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN diceroller@1.0.0 No description
npm WARN diceroller@1.0.0 No repository field.

+ ask-sdk@2.5.1
added 19 packages from 69 contributors and audited 22 packages in 3.509s
found 0 vulnerabilities

別ドライブなら問題なし

 Eドライブ、4TBもあるのに爆弾抱えた状態ってこと?

8時間かかるけど、ディスク修復を試す

Data Lifeguard Diagnostic for Windows 

で Eドライブを簡易チェックしてみたが、簡易チェックでは特に支障はない。

しかし Windows イベントログには、そもそもマスタブートレコード MBTがおかしいという趣旨のエラーが出ているので 修復を図ることにした。 

一旦、このPCの管理者ユーザに切り替えて、裏番組で実行しておく。
見積りでは8時間とのことなので、夜、寝る前には完了するはずだ。

再び、開発者ユーザ(管理者権限あり)に戻して、開発環境構築を続行する。

8時間後、Data Lifeguard Diagnostic からは何もエラーは発見されなかったとの報告。

f:id:tombi-aburage:20190420210246p:plain

Western Digital Data Lifeguard Diagnostics - DLGDIAG for Windows
そんな馬鹿な・・・

・・・最初から chkdsk /F しておけばよかった。また今度やろう。

再び8時間かけて chkdsk /R /F を実行したが「問題は見つかりませんでした」

chkdsk /R /F

 (ステージ1~4略)

ステージ 5: 不良空きクラスターを探しています ...

969201722 個の空きクラスターが処理されました。
空き領域の検査が終了しました。

Windows でファイル システムのスキャンが終了しました。
問題は見つかりませんでした。
これ以上の操作は必要ありません。

(中略)

0 KB : 不良セクタ

(下略)

修復してないが・・・本当かよ?

その後、やっぱりすぐにエラーが再発した。治ってない。
MBTを直接更新する何かの方法を試すしかなさそうだ。別途…

最終手段のハードディスク初期化

何をやっても治らないので、ハードディスクを再フォーマットして初期化することにした。4TBもあると、なかなか終了しないな…放置して寝るわ。

f:id:tombi-aburage:20190420232152p:plain

ハードディスク初期化したら、成功するようになった。

適当なプロジェクトフォルダを、初期化してドライブレター E を割り当て直したディスク2 に作成してから、node.js command prompt からプロジェクト新規作成。

npm init

(略)問題なし

以前、失敗した ask-sdk をインストール

npm install --save ask-sdk

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN kidsmorning@1.0.0 No description
npm WARN kidsmorning@1.0.0 No repository field.

+ ask-sdk@2.5.1
added 19 packages from 69 contributors and audited 22 packages in 16.431s
found 0 vulnerabilities

おお、治ったようだ。

別のパッケージも続けてインストール

npm i -save i18next i18next-sprintf-postprocessor

npm WARN kidsmorning@1.0.0 No description
npm WARN kidsmorning@1.0.0 No repository field.

+ i18next@15.0.9
+ i18next-sprintf-postprocessor@0.2.2
added 4 packages from 3 contributors and audited 26 packages in 2.668s
found 0 vulnerabilities

こちらも全く問題なし

これで、心おきなく Eドライブが使えるぞ。

ドライブエラーも出なくなった

f:id:tombi-aburage:20190414085943p:plain

 のメッセージも出なかったし。