Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-5527

Undeploying doesn't delete non-empty content folder

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Pull Request Sent (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 17.0.0.Beta3
    • Fix Version/s: None
    • Component/s: Management
    • Labels:
      None
    • Steps to Reproduce:
      Hide

      Standalone mode:
      ==============================

      ./bin/standalone.sh
      ./bin/jboss-cli.sh -c --command="deploy test.war"

      Find the content dir and create a new dir under it:
      mkdir standalone/data/content/e4/3d4d180d57f6355dab4effb2ca6e9009684f47/test
      Then create a new file
      touch standalone/data/content/e4/3d4d180d57f6355dab4effb2ca6e9009684f47/test/test.file

      ./bin/jboss-cli.sh -c --command="undeploy test.war"

      ==============================

      Domain Mode:
      ==============================

      Start a domain controller and a host controller to connect to the DC

      ./bin/domain.sh --host-config=host-master.xml -b [DC IP] -bmanagement [DC IP] -bprivate [DC IP] -bunsecure [DC IP]

      ./bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=[DC IP]

      deploy a test app via the DC to all server groups

      Stop the Host controller

      Under the host controllers $JBOSS_HOME/domain/data/content/..., create a file next to content and a file in the directory above.

      Undeploy the test app from all server groups

      Start the Host Controller
      After a few minutes it will try to remove the old deployment that was undeployed and will not remove all of the directories under data/content due to another file being added there.

      Show
      Standalone mode: ============================== ./bin/standalone.sh ./bin/jboss-cli.sh -c --command="deploy test.war" Find the content dir and create a new dir under it: mkdir standalone/data/content/e4/3d4d180d57f6355dab4effb2ca6e9009684f47/test Then create a new file touch standalone/data/content/e4/3d4d180d57f6355dab4effb2ca6e9009684f47/test/test.file ./bin/jboss-cli.sh -c --command="undeploy test.war" ============================== Domain Mode: ============================== Start a domain controller and a host controller to connect to the DC ./bin/domain.sh --host-config=host-master.xml -b [DC IP] -bmanagement [DC IP] -bprivate [DC IP] -bunsecure [DC IP] ./bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address= [DC IP] deploy a test app via the DC to all server groups Stop the Host controller Under the host controllers $JBOSS_HOME/domain/data/content/..., create a file next to content and a file in the directory above. Undeploy the test app from all server groups Start the Host Controller After a few minutes it will try to remove the old deployment that was undeployed and will not remove all of the directories under data/content due to another file being added there.

      Description

      Host Controller does not remove directories/files from the content repository if something such as the OS or other process creates a file in the directory.

      [Host Controller] 12:54:16,402 ERROR [org.jboss.as.repository] (Host Controller Service Threads - 7) WFLYDR0010: Couldn't delete content /tmp/jboss-eap-7.3/domain/data/content/ed/fb2d3547f1dd4cfacd9118885cd0a915bccf5c: java.nio.file.DirectoryNotEmptyException: /tmp/jboss-eap-7.3/domain/data/content/ed/fb2d3547f1dd4cfacd9118885cd0a915bccf5c
      [Host Controller] 	at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242)
      [Host Controller] 	at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)
      [Host Controller] 	at java.nio.file.Files.deleteIfExists(Files.java:1165)
      [Host Controller] 	at org.jboss.as.repository.ContentRepositoryImpl.removeContent(ContentRepositoryImpl.java:315)
      [Host Controller] 	at org.jboss.as.repository.ContentRepositoryImpl.markAsObsolete(ContentRepositoryImpl.java:377)
      [Host Controller] 	at org.jboss.as.repository.ContentRepositoryImpl.cleanObsoleteContent(ContentRepositoryImpl.java:353)
      [Host Controller] 	at org.jboss.as.server.operations.CleanObsoleteContentHandler.execute(CleanObsoleteContentHandler.java:76)
      [Host Controller] 	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:999)
      [Host Controller] 	at org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:743)
      [Host Controller] 	at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:467)
      [Host Controller] 	at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1413)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:429)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerImpl.lambda$execute$1(ModelControllerImpl.java:246)
      [Host Controller] 	at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:289)
      [Host Controller] 	at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:255)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:246)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl$LocalClient.executeInModelControllerCl(ModelControllerClientFactoryImpl.java:259)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl$LocalClient.executeOperation(ModelControllerClientFactoryImpl.java:157)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl.lambda$executeInVm$0(ModelControllerClientFactoryImpl.java:351)
      [Host Controller] 	at org.jboss.as.controller.access.InVmAccess.runInVm(InVmAccess.java:85)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl.executeInVm(ModelControllerClientFactoryImpl.java:351)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl.access$000(ModelControllerClientFactoryImpl.java:59)
      [Host Controller] 	at org.jboss.as.controller.ModelControllerClientFactoryImpl$1.executeOperation(ModelControllerClientFactoryImpl.java:82)
      [Host Controller] 	at org.jboss.as.controller.LocalModelControllerClient.execute(LocalModelControllerClient.java:54)
      [Host Controller] 	at org.jboss.as.controller.LocalModelControllerClient.execute(LocalModelControllerClient.java:39)
      [Host Controller] 	at org.jboss.as.server.deployment.ContentRepositoryCleaner$Execution$1.execute(ContentRepositoryCleaner.java:167)
      [Host Controller] 	at org.jboss.as.server.deployment.ContentRepositoryCleaner.cleanObsoleteContent(ContentRepositoryCleaner.java:136)
      [Host Controller] 	at org.jboss.as.server.deployment.ContentRepositoryCleaner$ContentRepositoryCleanerTask.run(ContentRepositoryCleaner.java:72)
      [Host Controller] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      [Host Controller] 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
      [Host Controller] 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
      [Host Controller] 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
      [Host Controller] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      [Host Controller] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      [Host Controller] 	at java.lang.Thread.run(Thread.java:748)
      [Host Controller] 	at org.jboss.threads.JBossThread.run(JBossThread.java:485)
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              michpetrov Michal Petrov
              Reporter:
              michpetrov Michal Petrov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated: