いつものようにGradleでアプリを動かそうとビルドした時にエラーに遭遇。
Gradle could not start your build. > Could not create service of type FileHasher using BuildSessionServices.createFileHasher(). > Failed to ping owner of lock for file hash cache (/Users/my/application/.gradle/6.7.1/fileHashes) (lock id: -4974386487345919916, port: 61117)
こんな感じでビルドが失敗する。
違うエラーも出るときがある。
Gradle could not start your build. > Could not create service of type ResourceSnapshotterCacheService using GradleUserHomeServices.createResourceSnapshotterCacheService(). > Timeout waiting to lock file hash cache (/Users/XXXX/.gradle/caches/6.7.1/fileHashes). It is currently in use by another Gradle instance. Owner PID: 7159 Our PID: 7163 Owner Operation: Our operation: Lock file: /Users/XXXX/.gradle/caches/6.7.1/fileHashes/fileHashes.lock
色々調べてみて対処した結果が以下。
対処方法を探す
gradle のプロセスを切る
gradleのプロセスを確認する。
$ ./gradlew --status
PID STATUS INFO 80536 IDLE 6.7.1
IDLEのプロセスをkillする
kill -9 80536
これで正しくプロセスが切れていれば起動出来るようになる。
が、2回目以降のビルドでまた同じエラーが出る。駄目っぽい。
また、
STOPPED (by user or operating system)
と出て消えないこともあるので駄目っぽい。
fileHashes.lockを削除する
~/.gradle/caches/{version}/fileHashes/fileHashes.lock
というファイルが存在するのでそれを削除するといいと見たので削除する。
が、削除してもビルドできず。駄目っぽい。
解決策
gradleのフォルダを削除してみたらいけるようになった。
まずGradleのdeamonフォルダを削除してみる。
$ rm -rf ~/.gradle/deamon/
再度BootRunしてみると無事起動できる。
ひとまずこの対応でエラーが出ることはなくなった。
番外編:ファイヤーウォールが悪さをしているかも
もうひとつ別の観点から。
このエラーが出る際にはセキュリティソフトのファイヤーウォールがGradleの通信を遮断(?)している事も原因かもしれない。
ESET Endpoint Security を使っている場合
「ESET Endpoint Security」というソフトを使っている場合、ファイヤーウォールを無効化にしてみる。
すると、すんなり起動できたりする。
細かい通信設定でGradleの通信を許可すればファイヤーウォールを無効化しなくて済むが、応急措置として。
Gradle のプロセスをすべてkillする
プロセスのkillは前述してあるが、一応すべて killしてみる。
$ ./gradlew --status PID STATUS INFO 2626 BUSY 6.7.1 2749 IDLE 6.7.1 2622 STOPPED (other compatible daemons were started and after being idle for 0 minutes and not recently used) 44915 STOPPED (by user or operating system)
GradleDaemonのプロセスをkill
$ pkill -f '.*GradleDaemon.*'
killされている。
$ ./gradlew --status No Gradle daemons are running. PID STATUS INFO 44915 STOPPED (by user or operating system)
環境
- Gradle 6.7.1
- IntelliJ IDEA 2021.1.1 (Community Edition)
参考
Gradle :Could not create service of type FileHasher / Anas K
How to clear gradle cache? / David T.
Stopped daemons never actually go away #1747
Kill all Gradle Daemons Regardless Version? / stack overflow
コメント