Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-4155

WatchService error when deploying an app to a remote file system

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 8.1.0.Final
    • IO, Web (Undertow)
    • None
    • Hide

      This is what I did, but it could be achieved even without Eclipse probably.
      1. Unzip Eclipse Luna SR1 on Windows, install JBoss Tools 4.2.1.CR1
      2. In Eclipse, add WildFly 8.1 using Window -> Preferences -> JBoss Tools -> Runtime Detection. Make sure your WildFly is on a remote FS - e.g. a samba share connected in Windows
      3. Create a Dynamic Web Project targeting the WF runtime
      4. Start the server
      5. Deploy the project

      Show
      This is what I did, but it could be achieved even without Eclipse probably. 1. Unzip Eclipse Luna SR1 on Windows, install JBoss Tools 4.2.1.CR1 2. In Eclipse, add WildFly 8.1 using Window -> Preferences -> JBoss Tools -> Runtime Detection. Make sure your WildFly is on a remote FS - e.g. a samba share connected in Windows 3. Create a Dynamic Web Project targeting the WF runtime 4. Start the server 5. Deploy the project

      I'm getting this output when I deploy a simple web project to WildFly 8.1:

      12:28:59,160 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found dynproj.war in deployment directory. To trigger deployment create a file called dynproj.war.dodeploy
      12:28:59,211 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "dynproj.war" (runtime-name: "dynproj.war")
      12:29:00,402 ERROR [io.undertow] (MSC service thread 1-1) UT005024: Could not register resource change listener for caching resource manager, automatic invalidation of cached resource will not work: java.lang.RuntimeException: java.io.IOException: Incorrect function.
      
      	at org.xnio.nio.WatchServiceFileSystemWatcher.watchPath(WatchServiceFileSystemWatcher.java:179)
      	at io.undertow.server.handlers.resource.FileResourceManager.registerResourceChangeListener(FileResourceManager.java:115) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
      	at org.wildfly.extension.undertow.deployment.ServletResourceManager.registerResourceChangeListener(ServletResourceManager.java:80)
      	at io.undertow.server.handlers.resource.CachingResourceManager.<init>(CachingResourceManager.java:64) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:505)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:245)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
      	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
      Caused by: java.io.IOException: Incorrect function.
      
      	at sun.nio.fs.WindowsWatchService$Poller.implRegister(WindowsWatchService.java:405) [rt.jar:1.7.0_51]
      	at sun.nio.fs.AbstractPoller.processRequests(AbstractPoller.java:260) [rt.jar:1.7.0_51]
      	at sun.nio.fs.WindowsWatchService$Poller.run(WindowsWatchService.java:531) [rt.jar:1.7.0_51]
      	... 1 more
      
      12:29:00,680 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-1) JBAS017534: Registered web context: /dynproj
      12:29:00,750 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "dynproj.war" (runtime-name : "dynproj.war")
      12:29:26,096 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) JBAS017535: Unregistered web context: /dynproj
      12:29:26,157 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-1) HV000001: Hibernate Validator 5.1.0.Final
      12:29:26,308 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment dynproj.war (runtime-name: dynproj.war) in 231ms
      12:29:26,378 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018558: Undeployed "dynproj.war" (runtime-name: "dynproj.war")
      12:30:06,475 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015003: Found dynproj.war in deployment directory. To trigger deployment create a file called dynproj.war.dodeploy
      12:30:06,496 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "dynproj.war" (runtime-name: "dynproj.war")
      12:30:06,697 ERROR [io.undertow] (MSC service thread 1-2) UT005024: Could not register resource change listener for caching resource manager, automatic invalidation of cached resource will not work: java.lang.RuntimeException: java.io.IOException: Incorrect function.
      
      	at org.xnio.nio.WatchServiceFileSystemWatcher.watchPath(WatchServiceFileSystemWatcher.java:179)
      	at io.undertow.server.handlers.resource.FileResourceManager.registerResourceChangeListener(FileResourceManager.java:115) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
      	at org.wildfly.extension.undertow.deployment.ServletResourceManager.registerResourceChangeListener(ServletResourceManager.java:80)
      	at io.undertow.server.handlers.resource.CachingResourceManager.<init>(CachingResourceManager.java:64) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:505)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:245)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
      	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
      Caused by: java.io.IOException: Incorrect function.
      
      	at sun.nio.fs.WindowsWatchService$Poller.implRegister(WindowsWatchService.java:405) [rt.jar:1.7.0_51]
      	at sun.nio.fs.AbstractPoller.processRequests(AbstractPoller.java:260) [rt.jar:1.7.0_51]
      	at sun.nio.fs.WindowsWatchService$Poller.run(WindowsWatchService.java:531) [rt.jar:1.7.0_51]
      	... 1 more
      
      12:30:06,727 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) JBAS017534: Registered web context: /dynproj
      12:30:06,767 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "dynproj.war" (runtime-name : "dynproj.war")
      

      My setup is this:
      OS X is my host OS, I'm running Windows 7 in virtualbox and have a shared folder from the host OS mounted in Windows. On this share, I have WildFly 8.1. I ran Eclipse Luna SR1 with JBoss Tools 4.2.1.CR1 installed, but it seems that this issue is not related to Eclipse. The main problem seems to be the remote FS. Dominik found this:
      https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html

      If a watched file is not located on a local storage device then it is implementation specific if changes to the file can be detected. In particular, it is not required that changes to files carried out on remote systems be detected.

      This happened with Oracle JRE 1.8.0_25 and JDK 1.7.0_51, I haven't tried others.

      So in fact this behavior may be kind of expected. But maybe instead of throwing errors, the server might want to have a more graceful behavior?

      Also, feel free to let me know if you need more details or if you want me to try different versions of WF or other server, but chances are this will happen in other versions as well.

              sdouglas1@redhat.com Stuart Douglas (Inactive)
              exd-mmalina Martin Malina
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: