FileUtil.delete could be changed to handle NoSuchFileException on its last line:
public static void delete(File file) throws IOException { if (!file.exists()) return; if (file.isDirectory()) { for (File child : listFiles(file)) { delete(child); } } Files.delete(file.toPath()); } On Thu, Feb 9, 2017 at 1:08 PM, Kirk Lund <kl...@pivotal.io> wrote: > Here's the source of the exceptions in JUnit4CacheTestCase: > > public static final void cleanDiskDirs() throws IOException { > FileUtil.delete(getDiskDir()); > Arrays.stream(new File(".").listFiles()).forEach(file -> > deleteBACKUPDiskStoreFile(file)); > } > > private static void deleteBACKUPDiskStoreFile(final File file) { > if (file.getName().startsWith("BACKUPDiskStore-")) { > try { > FileUtil.delete(file); > } catch (IOException e) { > throw new RuntimeException("Unable to delete BACKUPDiskStore file", > e); > } > } > } > > There's probably an async thread either from tearDown or from the tests > that's also deleting disk stores? > > On Thu, Feb 9, 2017 at 10:58 AM, Bruce Schuchardt <bschucha...@pivotal.io> > wrote: > > > What concerns me about these failures is that it's iterating the contents > > of a directory to delete eache file one-by-one and is failing to find a > > file. It's in JUnit4CacheTestCase tear-down code, not code specific to > > distributed transactions. > > > > > > Le 2/9/2017 à 10:53 AM, Kirk Lund a écrit : > > > >> The nightly build continues to fail with many dist tx test failures > >> involving cleanup of diskstores. Should we delete the dist tx tests > since > >> we don't have dist tx in geode yet? > >> > >> https://builds.apache.org/job/Geode-nightly/743/ > >> > >> [error 2017/02/09 11:20:30.602 UTC <RMI TCP > Connection(28)-67.195.81.139> > >> tid=0x600] Error cleaning disk dirs > >> java.lang.RuntimeException: Unable to delete BACKUPDiskStore file > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.deleteBACKUPDiskStoreFile(JUnit4CacheTestCase.java:580) > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.lambda$cleanDiskDirs$0(JUnit4CacheTestCase.java:572) > >> at > >> java.util.Spliterators$ArraySpliterator.forEachRemaining( > >> Spliterators.java:948) > >> at > >> java.util.stream.ReferencePipeline$Head.forEach( > >> ReferencePipeline.java:580) > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.cleanDiskDirs(JUnit4CacheTestCase.java:572) > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.remoteTearDown(JUnit4CacheTestCase.java:422) > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.lambda$tearDownCacheTestCase$bb17a952$1( > JUnit4CacheTestCase.java:393) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce > >> ssorImpl.java:62) > >> at > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe > >> thodAccessorImpl.java:43) > >> at java.lang.reflect.Method.invoke(Method.java:498) > >> at hydra.MethExecutor.executeObject(MethExecutor.java:245) > >> at > >> org.apache.geode.test.dunit.standalone.RemoteDUnitVM.execute > >> MethodOnObject(RemoteDUnitVM.java:73) > >> at sun.reflect.GeneratedMethodAccessor361.invoke(Unknown Source) > >> at > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe > >> thodAccessorImpl.java:43) > >> at java.lang.reflect.Method.invoke(Method.java:498) > >> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324) > >> at sun.rmi.transport.Transport$1.run(Transport.java:200) > >> at sun.rmi.transport.Transport$1.run(Transport.java:197) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at sun.rmi.transport.Transport.serviceCall(Transport.java:196) > >> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTranspo > >> rt.java:568) > >> at > >> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TC > >> PTransport.java:826) > >> at > >> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$ > >> run$0(TCPTransport.java:683) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at > >> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCP > >> Transport.java:682) > >> at > >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > >> Executor.java:1142) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo > >> lExecutor.java:617) > >> at java.lang.Thread.run(Thread.java:745) > >> Caused by: java.nio.file.NoSuchFileException: > >> ./BACKUPDiskStore-0-0-org.apache.geode.disttx.DistributedTra > >> nsactionDUnitTest.testPutAllWithTransactions_1.krf > >> at sun.nio.fs.UnixException.translateToIOException( > UnixException.java:86) > >> at sun.nio.fs.UnixException.rethrowAsIOException( > UnixException.java:102) > >> at sun.nio.fs.UnixException.rethrowAsIOException( > UnixException.java:107) > >> at > >> sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemP > >> rovider.java:244) > >> at > >> sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSys > >> temProvider.java:103) > >> at java.nio.file.Files.delete(Files.java:1126) > >> at org.apache.geode.internal.FileUtil.delete(FileUtil.java:166) > >> at > >> org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCa > >> se.deleteBACKUPDiskStoreFile(JUnit4CacheTestCase.java:578) > >> ... 28 more > >> > >> > > >