detekt / detekt

Static code analysis for Kotlin
https://detekt.dev
Apache License 2.0
6.09k stars 755 forks source link

Exception: Failed to create MD5 hash for file content #807

Closed juergenzimmermann closed 5 years ago

juergenzimmermann commented 6 years ago

Using Windows 10, Java 10, Gradle 4.6, and detekt 1.0.0.RC6-4 I get the following stacktrace.

The exception's message in English is The process cannot access the file, because another process has locked a part of the file.

> gradle detektCheck --info --stacktrace
Initialized native services in: C:\Z\native
Removing 0 daemon stop events from registry
Starting a Gradle Daemon (subsequent builds will be faster)
Starting process 'Gradle build daemon'. Working directory: C:\Z\daemon\4.6 Command: C:\Zimmermann\jdk\bin\java.exe -Xmx1536M -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=de -Duser.variant -cp C:\Zimmermann\gradle\lib\gradle-launcher-4.6.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.6
Successfully started process 'Gradle build daemon'
An attempt to start the daemon took 27.694 secs.
The client will now receive all logging from the daemon (pid: 14996). The daemon log file: C:\Z\daemon\4.6\daemon-14996.out.log
Starting build in new daemon [memory: 1,6 GB]
Using 4 worker leases.
Starting Build
Settings evaluated using settings file 'C:\Users\ziju0001\IdeaProjects\config\settings.gradle'.
Using local directory build cache for the root build (location = C:\Z\caches\build-cache-1, removeUnusedEntriesAfter = 7 days).
Projects loaded. Root project using build file 'C:\Users\ziju0001\IdeaProjects\config\build.gradle'.
Included projects: [root project 'config']

> Configure project :
Evaluating root project 'config' using build file 'C:\Users\ziju0001\IdeaProjects\config\build.gradle'.
Applying dependency management to configuration 'annotationProcessor' in project 'config'
Applying dependency management to configuration 'apiElements' in project 'config'
Applying dependency management to configuration 'archives' in project 'config'
Applying dependency management to configuration 'bootArchives' in project 'config'
Applying dependency management to configuration 'compile' in project 'config'
Applying dependency management to configuration 'compileClasspath' in project 'config'
Applying dependency management to configuration 'compileOnly' in project 'config'
Applying dependency management to configuration 'default' in project 'config'
Applying dependency management to configuration 'implementation' in project 'config'
Applying dependency management to configuration 'kapt' in project 'config'
Applying dependency management to configuration 'kaptTest' in project 'config'
Applying dependency management to configuration 'runtime' in project 'config'
Applying dependency management to configuration 'runtimeClasspath' in project 'config'
Applying dependency management to configuration 'runtimeElements' in project 'config'
Applying dependency management to configuration 'runtimeOnly' in project 'config'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'config'
Applying dependency management to configuration 'testCompile' in project 'config'
Applying dependency management to configuration 'testCompileClasspath' in project 'config'
Applying dependency management to configuration 'testCompileOnly' in project 'config'
Applying dependency management to configuration 'testImplementation' in project 'config'
Applying dependency management to configuration 'testRuntime' in project 'config'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'config'
Applying dependency management to configuration 'testRuntimeOnly' in project 'config'
Applying dependency management to configuration 'ktlint' in project 'config'

All projects evaluated.
Selected primary task 'detektCheck' from project :
Tasks to be executed: [task ':detektCheck']
:detektCheck (Thread[Daemon worker,5,main]) started.
:detektCheck (Thread[Daemon worker,5,main]) completed. Took 0.071 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Failed to capture snapshot of input files for task ':detektCheck' property 'input' during up-to-date check.
> Failed to create MD5 hash for file content.

* Try:
Run with --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.UncheckedIOException: Failed to capture snapshot of input files for task ':detektCheck' property 'input' during up-to-date check.
        at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.snapshotTaskFiles(CacheBackedTaskHistoryRepository.java:331)
        at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.createExecution(CacheBackedTaskHistoryRepository.java:151)
        at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.access$100(CacheBackedTaskHistoryRepository.java:61)
        at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository$1.getCurrentExecution(CacheBackedTaskHistoryRepository.java:111)
        at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.calculateCacheKey(DefaultTaskArtifactStateRepository.java:129)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.doResolve(ResolveBuildCacheKeyExecuter.java:106)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.access$000(ResolveBuildCacheKeyExecuter.java:48)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter$1.run(ResolveBuildCacheKeyExecuter.java:90)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.resolve(ResolveBuildCacheKeyExecuter.java:87)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:65)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:59)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:130)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:46)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:210)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:115)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:49)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.UncheckedIOException: Failed to create MD5 hash for file content.
        at org.gradle.internal.hash.DefaultStreamHasher.hash(DefaultStreamHasher.java:40)
        at org.gradle.internal.hash.DefaultFileHasher.hash(DefaultFileHasher.java:40)
        at org.gradle.api.internal.changedetection.state.CachingFileHasher.snapshot(CachingFileHasher.java:88)
        at org.gradle.api.internal.changedetection.state.CachingFileHasher.snapshot(CachingFileHasher.java:75)
        at org.gradle.api.internal.changedetection.state.CachingFileHasher.hash(CachingFileHasher.java:61)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.fileSnapshot(DefaultFileSystemSnapshotter.java:244)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.access$700(DefaultFileSystemSnapshotter.java:60)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter$FileVisitorImpl.visitFile(DefaultFileSystemSnapshotter.java:297)
        at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.visitFile(Jdk7DirectoryWalker.java:86)
        at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.visitFile(Jdk7DirectoryWalker.java:59)
        at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker.walkDir(Jdk7DirectoryWalker.java:59)
        at org.gradle.api.internal.file.collections.DirectoryFileTree.walkDir(DirectoryFileTree.java:154)
        at org.gradle.api.internal.file.collections.DirectoryFileTree.visitFrom(DirectoryFileTree.java:132)
        at org.gradle.api.internal.file.collections.DirectoryFileTree.visit(DirectoryFileTree.java:117)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.snapshotAndCache(DefaultFileSystemSnapshotter.java:192)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.access$500(DefaultFileSystemSnapshotter.java:60)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter$4.create(DefaultFileSystemSnapshotter.java:174)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter$4.create(DefaultFileSystemSnapshotter.java:169)
        at org.gradle.cache.internal.ProducerGuard$StripedProducerGuard.guardByKey(ProducerGuard.java:115)
        at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.snapshotDirectoryTree(DefaultFileSystemSnapshotter.java:169)
        at org.gradle.api.internal.changedetection.state.AbstractFileCollectionSnapshotter$FileCollectionVisitorImpl.visitDirectoryTree(AbstractFileCollectionSnapshotter.java:100)
        at org.gradle.api.internal.file.collections.FileTreeAdapter.visitRootElements(FileTreeAdapter.java:124)
        at org.gradle.api.internal.file.CompositeFileCollection.visitRootElements(CompositeFileCollection.java:185)
        at org.gradle.api.internal.changedetection.state.AbstractFileCollectionSnapshotter.snapshot(AbstractFileCollectionSnapshotter.java:55)
        at org.gradle.api.internal.changedetection.state.DefaultGenericFileCollectionSnapshotter.snapshot(DefaultGenericFileCollectionSnapshotter.java:38)
        at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.snapshotTaskFiles(CacheBackedTaskHistoryRepository.java:329)
        ... 113 more
Caused by: java.io.IOException: Der Prozess kann nicht auf die Datei zugreifen, da ein anderer Prozess einen Teil der Datei gesperrt hat
        at org.gradle.internal.hash.DefaultStreamHasher.doHash(DefaultStreamHasher.java:54)
        at org.gradle.internal.hash.DefaultStreamHasher.hash(DefaultStreamHasher.java:38)
        ... 138 more

* Get more help at https://help.gradle.org
arturbosch commented 6 years ago

Does gradle support Java 10 yet? Sounds like something from gradle internal itself. The DetektCheck task will change a lot in the future (see #771).

juergenzimmermann commented 6 years ago

So far these plugins are working fine with my projects (using Gradle 4.6, Java 10 and Kotlin 1.2.30):

arturbosch commented 6 years ago

Could also be the changes @Mauin did to enable up-to-date-checks Failed to capture snapshot of input files for task ':detektCheck' property 'input' during up-to-date check.

bakejeyner commented 6 years ago

I'm having the same problem as well. Windows version: 10.0.16299 Build 16299 Java version: 1.8.0_151 Gradle version: 4.5.1 detekt version: 1.0.0.RC6-4

olivierlemasle commented 6 years ago

The integration tests I added in #845 also failed on AppVeyor because of this issue (on Windows only).

I "solved" the issue by changing the "project cache directory" to anything not in the project directory (default cache location is .gradle in the project directory) E.g. try using:

gradle detektCheck --project-cache-dir=../cache
juergenzimmermann commented 6 years ago

@arturbosch @olivierlemasle Confirmed: when I add --project-cache-dir=... the issue is gone

arturbosch commented 6 years ago

Hmm it looks like a nice workaround, but still strange behaviour :/

olivierlemasle commented 6 years ago

Yes, using --project-cache-dir is a workaround, not a solution. The issue comes from commit 92c5f6f4f8 (just removing the annotation @InputDirectory here fixes the issue on Windows). However, I suppose the right solution will be #771 (@Mauin's work to implement base Gradle StaticAnalysis classes)

sschuberth commented 6 years ago

I'm also running into a related problem now:

Failed to capture snapshot of input files for task ':scanner:detektCheck' property 'input' during up-to-date check.
> Could not list contents of 'scanner/src/funTest/assets/scanners/scancode-toolkit/lib/python2.7/os.pyc'. Couldn't follow symbolic link.

So the problem seems to be that with commit 92c5f6f4f84042247ed03f74b20632170d54220a way too many files get regarded as input for the detektCheck task, namely all files in the working tree, and not only Kotlin files belonging to the current project. While that works in many cases, performance is terrible when running detektCheck for the first time with a version that contains 92c5f6f4f84042247ed03f74b20632170d54220a.

I'm hoping that https://github.com/arturbosch/detekt/pull/771/commits/a7217f58b29822263b832e3493c100afb0463df0 is going to fix that.

juergenzimmermann commented 6 years ago

@arturbosch The issue still exists with detekt 1.0.0.RC7 (Windows 10, Java 10, Gradle 4.7).

tonybaines commented 6 years ago

I'm seeing a similar issue on our Jenkins builds (detekt >=1.0.0.RC6-4, gradle 4.7, Java 8, Fedora 25)

:detektCheck FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Failed to capture snapshot of input files for task ':detektCheck' property 'input' during up-to-date check.
> Failed to create MD5 hash for file '/opt/jenkins/workspace/app/logs/2018-03/app-03-13-2018-1.log.gz' as it does not exist.

The file in question is an archived log, probably being cleaned up by log4j2 on startup

BartvHelvert commented 6 years ago

Having the same issue (detekt 1.0.0.RC7, Windows 10, Gradle 4.7, Java 1.8.0.144)

arturbosch commented 6 years ago

@olivierlemasle @sschuberth would filtering the input directory for kotlin files help to get rid of this exception?

sschuberth commented 6 years ago

While that would probably help, I believe the more correct approach would be to simply use the source set as the task input, i. e. exactly the list of files detekt is run on.

arturbosch commented 6 years ago

Yes, the sourceset approach is implemented in the plugin rework. This could be a quick fix for RC7-1,

kenyee commented 5 years ago

FYI, tested with Detekt 1.0.0.RC7-2 and it still fails w/ the "Failed to create MD5 hash for file content" error on Windows. Works fine on OSX.

contrudar commented 5 years ago

Java 11, Gradle 4.10.3, Kotlin 1.3.11. The problem still exist

sschuberth commented 5 years ago

@contrudar please also mention the detekt plugin version you're using.

contrudar commented 5 years ago

@sschuberth 1.0.0-RC12

3flex commented 5 years ago

Hi all, please see if https://github.com/arturbosch/detekt/pull/1505 fixes any issues reported here, thanks!

juergenzimmermann commented 5 years ago

I don't have this issue on Windows 10, Java 12, Gradle 5.2.1, and detekt 1.0.0-RC14.

lsrom commented 5 years ago

Unfortunately I got this issue in 1.0.0-RC14, Windows 10, Gradle 5.2.1, Kotlin 1.3.20, Java 1.8.0_181.

flasher297 commented 5 years ago

Still have this issue. 1.0.0-RC14 I use - input = files("${rootDir}"). Helps if i switch to files("${projectDir}") But i have some Kotlin files outside of "projectDir" and I also want to be them checked by detekt.

arturbosch commented 5 years ago

@flasher297 just add the other files you want to check in the files call next to projectDir for now. Please re-check this issue when RC15 will be released.

Aheadboy commented 5 years ago