java.nio.file.NoSuchFileException: /tmp/results/jobXXXXXXXXXXXXXX
at sun.nio.fs.UnixException.translateToIOException ( sun/nio.fs/UnixException.java:92 )
at sun.nio.fs.UnixException.rethrowAsIOException ( sun/nio.fs/UnixException.java:106 )
at sun.nio.fs.UnixException.rethrowAsIOException ( sun/nio.fs/UnixException.java:111 )
at sun.nio.fs.UnixFileSystemProvider.implDelete ( sun/nio.fs/UnixFileSystemProvider.java:248 )
at sun.nio.fs.AbstractFileSystemProvider.delete ( sun/nio.fs/AbstractFileSystemProvider.java:105 )
at java.nio.file.Files.delete ( java/nio.file/Files.java:1152 )
at org.springframework.util.FileSystemUtils$1.postVisitDirectory ( org/springframework.util/FileSystemUtils.java:96 )
at org.springframework.util.FileSystemUtils$1.postVisitDirectory ( org/springframework.util/FileSystemUtils.java:87 )
at java.nio.file.Files.walkFileTree ( java/nio.file/Files.java:2828 )
at java.nio.file.Files.walkFileTree ( java/nio.file/Files.java:2882 )
at org.springframework.util.FileSystemUtils.deleteRecursively ( org/springframework.util/FileSystemUtils.java:87 )
at com.defold.extender.AsyncBuilder.lambda$cleanUnusedResults$2 ( com/defold.extender/AsyncBuilder.java:171 )
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept ( java/util.stream/ForEachOps.java:183 )
at java.util.stream.ReferencePipeline$2$1.accept ( java/util.stream/ReferencePipeline.java:179 )
at java.util.stream.ReferencePipeline$2$1.accept ( java/util.stream/ReferencePipeline.java:179 )
at java.util.stream.ReferencePipeline$3$1.accept ( java/util.stream/ReferencePipeline.java:197 )
at java.util.Iterator.forEachRemaining ( java/util/Iterator.java:133 )
at java.util.Spliterators$IteratorSpliterator.forEachRemaining ( java/util/Spliterators.java:1845 )
at java.util.stream.AbstractPipeline.copyInto ( java/util.stream/AbstractPipeline.java:509 )
at java.util.stream.AbstractPipeline.wrapAndCopyInto ( java/util.stream/AbstractPipeline.java:499 )
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential ( java/util.stream/ForEachOps.java:150 )
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential ( java/util.stream/ForEachOps.java:173 )
at java.util.stream.AbstractPipeline.evaluate ( java/util.stream/AbstractPipeline.java:234 )
at java.util.stream.ReferencePipeline.forEach ( java/util.stream/ReferencePipeline.java:596 )
at com.defold.extender.AsyncBuilder.cleanUnusedResults ( com/defold.extender/AsyncBuilder.java:168 )
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke ( jdk/internal.reflect/DelegatingMethodAccessorImpl.java:43 )
at java.lang.reflect.Method.invoke ( java/lang.reflect/Method.java:569 )
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection ( org/springframework.aop.support/AopUtils.java:355 )
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept ( org/springframework.aop.framework/CglibAopProxy.java:716 )
at com.defold.extender.AsyncBuilder$$SpringCGLIB$$0.cleanUnusedResults
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke ( jdk/internal.reflect/DelegatingMethodAccessorImpl.java:43 )
at java.lang.reflect.Method.invoke ( java/lang.reflect/Method.java:569 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:130 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2 ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:124 )
at io.micrometer.observation.Observation.observe ( io/micrometer.observation/Observation.java:499 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.run ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:124 )
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run ( org/springframework.scheduling.support/DelegatingErrorHandlingRunnable.java:54 )
at io.micrometer.context.ContextSnapshot.lambda$wrap$0 ( io/micrometer.context/ContextSnapshot.java:91 )
at java.util.concurrent.Executors$RunnableAdapter.call ( java/util.concurrent/Executors.java:539 )
at java.util.concurrent.FutureTask.runAndReset ( java/util.concurrent/FutureTask.java:305 )
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run ( java/util.concurrent/ScheduledThreadPoolExecutor.java:305 )
at java.util.concurrent.ThreadPoolExecutor.runWorker ( java/util.concurrent/ThreadPoolExecutor.java:1136 )
at java.util.concurrent.ThreadPoolExecutor$Worker.run ( java/util.concurrent/ThreadPoolExecutor.java:635 )
at java.lang.Thread.run ( java/lang/Thread.java:840 )
and
java.nio.file.NoSuchFileException: /tmp/results/jobXXXXXXXXX
at java.nio.file.FileTreeIterator.fetchNextIfNeeded ( java/nio.file/FileTreeIterator.java:87 )
at java.nio.file.FileTreeIterator.hasNext ( java/nio.file/FileTreeIterator.java:103 )
at java.util.Iterator.forEachRemaining ( java/util/Iterator.java:132 )
at java.util.Spliterators$IteratorSpliterator.forEachRemaining ( java/util/Spliterators.java:1845 )
at java.util.stream.AbstractPipeline.copyInto ( java/util.stream/AbstractPipeline.java:509 )
at java.util.stream.AbstractPipeline.wrapAndCopyInto ( java/util.stream/AbstractPipeline.java:499 )
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential ( java/util.stream/ForEachOps.java:150 )
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential ( java/util.stream/ForEachOps.java:173 )
at java.util.stream.AbstractPipeline.evaluate ( java/util.stream/AbstractPipeline.java:234 )
at java.util.stream.ReferencePipeline.forEach ( java/util.stream/ReferencePipeline.java:596 )
at com.defold.extender.AsyncBuilder.cleanUnusedResults ( com/defold.extender/AsyncBuilder.java:168 )
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke ( jdk/internal.reflect/DelegatingMethodAccessorImpl.java:43 )
at java.lang.reflect.Method.invoke ( java/lang.reflect/Method.java:569 )
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection ( org/springframework.aop.support/AopUtils.java:355 )
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept ( org/springframework.aop.framework/CglibAopProxy.java:716 )
at com.defold.extender.AsyncBuilder$$SpringCGLIB$$0.cleanUnusedResults
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke ( jdk/internal.reflect/DelegatingMethodAccessorImpl.java:43 )
at java.lang.reflect.Method.invoke ( java/lang.reflect/Method.java:569 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:130 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2 ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:124 )
at io.micrometer.observation.Observation.observe ( io/micrometer.observation/Observation.java:499 )
at org.springframework.scheduling.support.ScheduledMethodRunnable.run ( org/springframework.scheduling.support/ScheduledMethodRunnable.java:124 )
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run ( org/springframework.scheduling.support/DelegatingErrorHandlingRunnable.java:54 )
at io.micrometer.context.ContextSnapshot.lambda$wrap$0 ( io/micrometer.context/ContextSnapshot.java:91 )
at java.util.concurrent.Executors$RunnableAdapter.call ( java/util.concurrent/Executors.java:539 )
at java.util.concurrent.FutureTask.runAndReset ( java/util.concurrent/FutureTask.java:305 )
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run ( java/util.concurrent/ScheduledThreadPoolExecutor.java:305 )
at java.util.concurrent.ThreadPoolExecutor.runWorker ( java/util.concurrent/ThreadPoolExecutor.java:1136 )
at java.util.concurrent.ThreadPoolExecutor$Worker.run ( java/util.concurrent/ThreadPoolExecutor.java:635 )
at java.lang.Thread.run ( java/lang/Thread.java:840 )
The problem here is that two Extender instances shared the same location for job result. Solution: configure different location for job result and redeploy.
and