I'd prefer to delete org.apache.geode.internal.FileUtil and change code
that uses it to instead use org.apache.commons.io.FileUtils.


On Thu, Feb 9, 2017 at 11:10 AM, Darrel Schneider <[email protected]>
wrote:

> 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 <[email protected]> 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 <
> [email protected]>
> > 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
> > >>
> > >>
> > >
> >
>

Reply via email to