Re: FarmWarDeployer not checking watchDir
On 2015-01-21 00:15, Christopher Schultz wrote: Can you build with an updated patch[1], re-break your directory permissions and re-run Tomcat? Let me know if the log output you get would have led you to a solution more quickly. - -chris I did. Here is the warning I obtained: 21-Jan-2015 12:48:26.160 WARNING [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check /my/watch/dir/ROOT.war was detected in /my/watch/dir but does not exist. Check directory permissions on /my/watch/dir? I probably would have found the problem faster with this message, yes. I'll open Can you log a Bugzilla enhancement for this? I'll add some checking to WarWatcher as well as improved logging. I will open it right now. Théo - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
2015-01-13 21:38 GMT+03:00 Théo Chamley theo...@mley.fr: Hello, I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. I feel like I am missing something obvious... Here is my config: Oracle JDK 1.8.0_25 Tomcat 8.0.15 server.xml: Host name=www.exemple.com appBase=/my/app/base unpackWARs=true autoDeploy=true Cluster className=org.apache.catalina.ha.tcp.SimpleTcpCluster channelSendOptions=6 Manager className=org.apache.catalina.ha.session.BackupManager expireSessionsOnShutdown=false notifyListenersOnReplication=true mapSendOptions=6/ Channel className=org.apache.catalina.tribes.group.GroupChannel Membership className=org.apache.catalina.tribes.membership.McastService address=228.0.0.4 port=45564 frequency=500 dropTime=3000 bind=10.0.0.1/ Receiver className=org.apache.catalina.tribes.transport.nio.NioReceiver address=10.0.0.1 port=5000 selectorTimeout=100 maxThreads=6/ Sender className=org.apache.catalina.tribes.transport.ReplicationTransmitter Transport className=org.apache.catalina.tribes.transport.nio.PooledParallelSender/ /Sender Interceptor className=org.apache.catalina.tribes.group.interceptors.TcpFailureDetector/ Interceptor className=org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor/ Interceptor className=org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor/ /Channel Valve className=org.apache.catalina.ha.tcp.ReplicationValve filter=.*.gif|.*.js|.*.jpeg|.*.jpg|.*.png|.*.css|.*.txt/ Note . before file name extension has to be escaped to mean a literal '.' instead of any-character pattern, .*\.gif etc. Deployer className=org.apache.catalina.ha.deploy.FarmWarDeployer tempDir=/my/temp/dir/ deployDir=/my/app/base/ watchDir=/my/listen/dir/ watchEnabled=true/ I wonder why there are two getter methods for watchEnabled property in FarmWarDeployer, [[[ public boolean isWatchEnabled() { return watchEnabled; } public boolean getWatchEnabled() { return watchEnabled; } public void setWatchEnabled(boolean watchEnabled) { this.watchEnabled = watchEnabled; } ]]] ClusterListener className=org.apache.catalina.ha.session.ClusterSessionListener/ /Cluster /Host The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[ StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir Note that message says /my/watch/dir, but the configuration above uses /my/listen/dir/. What are access permissions for the directory and for the file. Is there search permission on the directory, is the file readable? E.g. if the directory is not readable File.listFiles() returns null, but the code interprets it as an empty list, silently proceeding further. Best regards, Konstantin Kolinko
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/19/15 3:59 PM, Théo Chamley wrote: On 19 Jan 2015, at 20:16, Christopher Schultz ch...@christopherschultz.net mailto:ch...@christopherschultz.net wrote: Signed PGP part Théo, On 1/19/15 6:11 AM, Théo Chamley wrote: On 2015-01-16 19:33, Christopher Schultz wrote: Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org mailto:users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org mailto:users-h...@tomcat.apache.org Hello, Thank you for your answer. The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:04:47.962 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:05:07.967 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir It looks like WarWatcher looks for WAR files that end in .war specifically: it must be all lower-case. Would you be willing to build your own Tomcat from source if I send you a source patch? I could add some logging and you can get more information. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org mailto:users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org mailto:users-h...@tomcat.apache.org Hello, Yes, absolutely. Also, I just verified: the name of my file is exactly “ROOT.war”, with this case. http://people.apache.org/~schultz/patches/WarWatcher.log.patch Kick-up the log level for the WarWatcher class to TRACE and re-try. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvnVLAAoJEBzwKT+lPKRYSEkP/jXmu1J8CEpnSNtDvdZjsKvc eUvNlEO8ul6cAbEH2FnEpN26CmXLwGNdCmN17THElUI+O/j2nH/HMqEtD3wSRsdj bp9Vy4bKAhAu9rsOwNIlW8aY3mcDTQp+sKF55RzpXqxP4aO7UyxXgHwlZavJvNB6 ockn7NV/qPafhJRTBiahdB9pHAB6yXAToaUn1GlITDtTLHYY4BG3a3084mh6I406 70vOMYOM4E9vDRcEreI7gANg6Zbc299UrHPG/9Q+YnHtogw1hd7YheraMF7iyzFj WYcmEZjjZfOWRT8MtRokBaj3WgugHHIJZ6rYW4Snb6O9Lp6Gox4LBoro41++RJsm oRLnyYe8fW81OjivEgjiyxHD49yFrPcEhOnAVguCBD/wVeBUafcbvGgnCHbY44ma rPtkrKF25JuELmb2jcYO0Q1/C2edG/G7SzCYTAUquNlFrepCwjfecyXqA7iJncte 8hBMO0D3ukJOZsXtlwGS4O2v+ulXH3e/7KUIN45XDy0RTzDPlnEndC6/1D0Oxcgc muPiFg/EzI6jNi2hSFOJSluJ5RaK6brifOHki8NK7obBMcj4CWs1Rs03Av9oA6BD wtldS6S6ZesQCyY73d4gHqdJHYMv0j+jvG0sn3eKDULrdnXgYqDjkVmYDWSlkpqB v4reNZCAQ7K6157+eVIr =FGW0 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
On 2015-01-20 16:33, Christopher Schultz wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/19/15 3:59 PM, Théo Chamley wrote: On 19 Jan 2015, at 20:16, Christopher Schultz ch...@christopherschultz.net mailto:ch...@christopherschultz.net wrote: Signed PGP part Théo, On 1/19/15 6:11 AM, Théo Chamley wrote: On 2015-01-16 19:33, Christopher Schultz wrote: Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org mailto:users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org mailto:users-h...@tomcat.apache.org Hello, Thank you for your answer. The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:04:47.962 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:05:07.967 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir It looks like WarWatcher looks for WAR files that end in .war specifically: it must be all lower-case. Would you be willing to build your own Tomcat from source if I send you a source patch? I could add some logging and you can get more information. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org mailto:users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org mailto:users-h...@tomcat.apache.org Hello, Yes, absolutely. Also, I just verified: the name of my file is exactly “ROOT.war”, with this case. http://people.apache.org/~schultz/patches/WarWatcher.log.patch Kick-up the log level for the WarWatcher class to TRACE and re-try. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvnVLAAoJEBzwKT+lPKRYSEkP/jXmu1J8CEpnSNtDvdZjsKvc eUvNlEO8ul6cAbEH2FnEpN26CmXLwGNdCmN17THElUI+O/j2nH/HMqEtD3wSRsdj bp9Vy4bKAhAu9rsOwNIlW8aY3mcDTQp+sKF55RzpXqxP4aO7UyxXgHwlZavJvNB6 ockn7NV/qPafhJRTBiahdB9pHAB6yXAToaUn1GlITDtTLHYY4BG3a3084mh6I406 70vOMYOM4E9vDRcEreI7gANg6Zbc299UrHPG/9Q+YnHtogw1hd7YheraMF7iyzFj WYcmEZjjZfOWRT8MtRokBaj3WgugHHIJZ6rYW4Snb6O9Lp6Gox4LBoro41++RJsm oRLnyYe8fW81OjivEgjiyxHD49yFrPcEhOnAVguCBD/wVeBUafcbvGgnCHbY44ma rPtkrKF25JuELmb2jcYO0Q1/C2edG/G7SzCYTAUquNlFrepCwjfecyXqA7iJncte 8hBMO0D3ukJOZsXtlwGS4O2v+ulXH3e/7KUIN45XDy0RTzDPlnEndC6/1D0Oxcgc muPiFg/EzI6jNi2hSFOJSluJ5RaK6brifOHki8NK7obBMcj4CWs1Rs03Av9oA6BD wtldS6S6ZesQCyY73d4gHqdJHYMv0j+jvG0sn3eKDULrdnXgYqDjkVmYDWSlkpqB v4reNZCAQ7K6157+eVIr =FGW0 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Thanks, found my problem by adding even more debugging than you. So, it came down to my watchDir being in 644 and not 755. Because of this, the war.exists() in the modified() function of the WarInfo class returned false. What was misleading is that the watchDir.listFiles(new WarFilter())
RE: FarmWarDeployer not checking watchDir
From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: FarmWarDeployer not checking watchDir So you can get a list of names, but you can't get any other information about the files, like anything returned by stat(). Correct; stat() retrieves metadata that's stored in the inode, so you must have access to the inode, not just the directory entry. everything gave me either an error (e.g. ls) or en empty listing (vi) of that directory. Expected; there are no standard tools I'm aware of that _only_ read and display directory entries; pretty much everything wants to go deeper to the target of the directory entry (the inode). I think the JRE uses honest-to-goodness execute permissions for certain things on modern (read: NT) filesystems, but I think there are some files that have implicit execute permission (like anything ending in .com, .exe, .pif, .bat, .cmd, or maybe others as well). There actually is an explicit execute permission in Windows (separate from read) for files; for directories, there's a list-folder-contents permission akin to POSIX execute. Any file in Windows can be marked as executable; the extension list is just the set of extensions Windows checks for when a command is given without an extension. Seems a bit odd that a .jar or .war file would need execute access, though. ? Not looking for execute privs on the WAR... only the containing directory. Ahh - I misunderstood. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Konstantin, On 1/20/15 12:06 PM, Konstantin Kolinko wrote: 2015-01-13 21:38 GMT+03:00 Théo Chamley theo...@mley.fr: Hello, I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. I feel like I am missing something obvious... Here is my config: Oracle JDK 1.8.0_25 Tomcat 8.0.15 server.xml: Host name=www.exemple.com appBase=/my/app/base unpackWARs=true autoDeploy=true Cluster className=org.apache.catalina.ha.tcp.SimpleTcpCluster channelSendOptions=6 Manager className=org.apache.catalina.ha.session.BackupManager expireSessionsOnShutdown=false notifyListenersOnReplication=true mapSendOptions=6/ Channel className=org.apache.catalina.tribes.group.GroupChannel Membership className=org.apache.catalina.tribes.membership.McastService address=228.0.0.4 port=45564 frequency=500 dropTime=3000 bind=10.0.0.1/ Receiver className=org.apache.catalina.tribes.transport.nio.NioReceiver address=10.0.0.1 port=5000 selectorTimeout=100 maxThreads=6/ Sender className=org.apache.catalina.tribes.transport.ReplicationTransmitter Transport className=org.apache.catalina.tribes.transport.nio.PooledParallelSender/ /Sender Interceptor className=org.apache.catalina.tribes.group.interceptors.TcpFailureDetector/ Interceptor className=org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor/ Interceptor className=org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor/ /Channel Valve className=org.apache.catalina.ha.tcp.ReplicationValve filter=.*.gif|.*.js|.*.jpeg|.*.jpg|.*.png|.*.css|.*.txt/ Note . before file name extension has to be escaped to mean a literal '.' instead of any-character pattern, .*\.gif etc. Fortunately, regex . any-character also includes .. So this configuration is merely misleading, not incorrect. Deployer className=org.apache.catalina.ha.deploy.FarmWarDeployer tempDir=/my/temp/dir/ deployDir=/my/app/base/ watchDir=/my/listen/dir/ watchEnabled=true/ I wonder why there are two getter methods for watchEnabled property in FarmWarDeployer, [[[ public boolean isWatchEnabled() { return watchEnabled; } public boolean getWatchEnabled() { return watchEnabled; } public void setWatchEnabled(boolean watchEnabled) { this.watchEnabled = watchEnabled; } ]]] Because humans often want getBooleanProperty, but Java Beans usually have isBooleanProperty. ClusterListener className=org.apache.catalina.ha.session.ClusterSessionListener/ /Cluster /Host The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[ StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir Note that message says /my/watch/dir, but the configuration above uses /my/listen/dir/. Good catch. Something isn't right, here. What are access permissions for the directory and for the file. Is there search permission on the directory, is the file readable? E.g. if the directory is not readable File.listFiles() returns null, but the code interprets it as an empty list, silently proceeding further. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvswUAAoJEBzwKT+lPKRYfSIP/A9+QxLtLnh30eDXGTk586ci yCOVBo/EzLZADItNzIVhaHWj9lwq8rQHlsjNHEumqlEPK/9esxbbaJ4SMRfCiCty K3/rwWJC3DgHJmv6sA8GWqlUIM8Cie4mBKV00Tv5aekNLfa8stzzCNjTkQ4bSg8y iQgYu1K4JoYkEcp9WmrZpk/95SA57UQLs1D5s1ftYsu6Y8lFTMq30IMrnvCu8aLy dJS4SmGc3NbvPt7dVdEo41+WvM0o/m+H+QScrE8kgXVGGbsNPb2kwG943xD29vxu L1LG1hYwh6pT0hson9B6fd7ZAwjL9rbSZJ28g3TeVpahYH9I6kOPRadt6T186ndn
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/20/15 12:42 PM, Théo Chamley wrote: Thanks, found my problem by adding even more debugging than you. So, it came down to my watchDir being in 644 and not 755. So, missing the execute bit? Because of this, the war.exists() in the modified() function of the WarInfo class returned false. What was misleading is that the watchDir.listFiles(new WarFilter()) function (line 71 of WarWatcher.java) was able to list the content of the directory… I'll check out that behavior: WarWatcher can certainly use some polishing as I've seen by looking at a bit of that code. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvtnIAAoJEBzwKT+lPKRYT5oP/3iPBQEFI0ApXwGnHC7C1dBW uE/k1AvPCCO9kr7JtGe3f8sDsVgeMOLTbolmZyE9b78Hom/TFQfzKbnhQhwDtiuc 99P/kE5dr+5eAv3FaUSvOMYUl4SG67MrfO3H4BR/odVP+/Fqqr4xX+spwxYqeLr7 eSijQpmXHFvBQIjKDG1opBaKAG3+EIiwXTw4WdH+lXrU4XtzWzpAkBca7RL/1Id5 i/WJ0jqcc3btNlI4iodei9iog7A1Cy/8QDfDVYEoNBqqVy994y7+L6mzVFf/GUV3 fIYBNU5aXmPorsrDvGvO0vGINOQWpR74gK0m0b2wXKRxCyIk60nxs62zQT7hDVhw NjFp3oBpiNPYpIq+wWMtfJYZBI/OhJOmf/aDyYWJbs476tDqVrgieDjTVsl0hxoC L3ofZ74vOcVJWqVymITuoU67WL9u7IPlnVrASA6dHsxuywH+6aN8Gzf/RGqkcqB5 3z8NKPeCkUmqFGp5ucWDSxGmFp5nv0ZoquvRHUbGdAVmIibypYAvCkKXkHLEg6J2 sLjhV2l9BwEhbvGMuUahriYbyLirnAGphKu1YQXJFPBPoxYD1Q4U4akA/0Yl8EDB SsTlKDac1eReaqGAnozgBNkX+t0tb2mUa03rcLFBRJ07zNUVR94af22TDdweWIxg Yum/aS6FljVOJlZ7KUjA =COo+ -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/20/15 5:53 PM, Théo Chamley wrote: Yes, that’s it. A chmod +x on my watchDir fixed the problem (I knew I was missing something silly…). As for Konstantin’s remark on the path, I changed it before posting and made a mistake at this moment. The real path, which is the same everywhere, contains the name of my client. Can you build with an updated patch[1], re-break your directory permissions and re-run Tomcat? Let me know if the log output you get would have led you to a solution more quickly. - -chris [1] http://people.apache.org/~schultz/patches/WarWatcher.log.patch.2 -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvuGlAAoJEBzwKT+lPKRYyd8P/18WH3l5MzLI47Wf/8lQZlu6 XN7tAie5SDfyXQs8HSbUEem7czf7wX6f2rgK29p0Ai1VAWb1RjKPYHMymgJQa25+ +qTxRzEw+Mvs16OuyqL92iH+260IYcbbIAWwz7GyjHNm0iAkG9EIx3QBriNOiZPR 6udYM+46FyKx79ptD0aRd15J08p3SXxdKjqoAtU1kaX0/+fkmAdmdn4jyTbkTpkg 3MgF+qF0Cj+VN/8HJZX1ywWGHXmMwR8XNfgp8nxS+A3cmdbfGXs5JOnMOrXpFzdJ nXgKnuzuixPKqqeZlMTHptxvCQkY0fooOWeJwIOwa2CGGLC9PnjIzP+NzDk637yy viQ3W4rZmKuzMa1+evBIJTCGme6vi38gbZ491bWB39xTW4OBngc5J2PBcqfPW+as SOMv7IMUSXqB0pKWG7g7V5qW4eYjcNOcYi1ntVQHVkUQzdd3mCG3jBYFEL3aj07Y P8X69lDTndO5pMseuJq0I7VmDZZx4mV5rxjgWqLtr+quJKLTgHK0DazsXgeoeQdk Qjh7JxQxcqX+fqUbURuPqcgB9WlAI4yfxIyxTzibjbtyGJkgrwMjepZ9uz8wWdXw 1/mrSxSGYFO+FPsPZSw3/D8+Y7oFkFLN9UiPJj8y967TFcsfq450HDboewxnhZ9U 62BZonqvKo8mz7TFFkNp =bXkY -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Chuck, On 1/20/15 6:10 PM, Caldarale, Charles R wrote: From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: FarmWarDeployer not checking watchDir I'm actually really surprised that File.list() returns a list of files for the directory that does not have execute permissions. That's per the POSIX standard: you only need read access on the directory to see directory entries (which pretty much consist only of names and inode numbers), but you need execute access on the directory to actually reach the inodes those directory entries point to. So you can get a list of names, but you can't get any other information about the files, like anything returned by stat(). I tried every other tool I could think of (stat, ls, vi, less, etc.) short of writing the program in C myself to see what I could see, and everything gave me either an error (e.g. ls) or en empty listing (vi) of that directory. And, of course, Windows knows nothing about this... (meaning the JRE has to fake it a bit). I think the JRE uses honest-to-goodness execute permissions for certain things on modern (read: NT) filesystems, but I think there are some files that have implicit execute permission (like anything ending in .com, .exe, .pif, .bat, .cmd, or maybe others as well). Seems a bit odd that a .jar or .war file would need execute access, though. ? Not looking for execute privs on the WAR... only the containing directory. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvuKIAAoJEBzwKT+lPKRY/+AP/RmAdEas/AiQT7cvgaJcUbIA QRrbm05u7S9rVC0fSVLKikJplyxIcITBGkAwDL2QbmdbeykvWY1mMnyw0vQONBG0 Zv4zdxGlQ35PuLQCB/zYrTyuAH3GX5xtp7cHWoyxbOjFjP8psC4jUaHAEftqcNhY kXvxn1FjwnGKJ89Ijwf6iNMVxS7suUV5fcYsI6RBhwYElmg1Mwub8iW3eO1n2FIp VoIOLOYzUasfThfpBFczjh/PmbvO1s5F58zSS+4Hq5wFUVn7cBvJjXTOE33oYoYH GP9KHOaKFiCKbxOLxmN40TG27zoJjM3lb0ptwzBZlyUKEnZ1Dd33y8v/wa3T29ah JGHWaqHFCt/uGNGf9C3HRzJdomqsmTT9yNgnDpTf4lNUkd67N/Iea6UE4eKqfFFC jlh5ZOnPftSaZNV4feNwYqpZyd2aqhHvbZvH/Bs17YOrSDUlE6MtqStVU4aBIKH4 iPXw7liHS1u0f/9UTpYbrWGrOFpwb1c/AD+SOd7s0cEqlFEtoB9G/Soj6jLLyzFe /DdlUMHhKUsQyiexBBYTOUBJu9MBiyhN1uJbGV7jSj014MkExnkh8BsXQgbomQ2n 6PyG/aWlBeeY+VaSqfAxiP5r5HGO9aUPMd7fPE9O7geIw4WCFSDZyua7DXLIIlR+ Xz70XfscxWP8tT5NNakC =/69Q -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: FarmWarDeployer not checking watchDir
From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: FarmWarDeployer not checking watchDir I'm actually really surprised that File.list() returns a list of files for the directory that does not have execute permissions. That's per the POSIX standard: you only need read access on the directory to see directory entries (which pretty much consist only of names and inode numbers), but you need execute access on the directory to actually reach the inodes those directory entries point to. And, of course, Windows knows nothing about this... (meaning the JRE has to fake it a bit). Seems a bit odd that a .jar or .war file would need execute access, though. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/20/15 5:42 PM, Christopher Schultz wrote: Théo, On 1/20/15 12:42 PM, Théo Chamley wrote: Thanks, found my problem by adding even more debugging than you. So, it came down to my watchDir being in 644 and not 755. So, missing the execute bit? Because of this, the war.exists() in the modified() function of the WarInfo class returned false. What was misleading is that the watchDir.listFiles(new WarFilter()) function (line 71 of WarWatcher.java) was able to list the content of the directory… I'll check out that behavior: WarWatcher can certainly use some polishing as I've seen by looking at a bit of that code. I have confirmed that Java can evidently list files in a directory without execute permissions, but then the files don't exist as far as File.exists is concerned: $ java PermissionsTest 644 755 644/a_file 755/a_file == File: 644 exists: true canread: true canwrite: true canexecute: true children: [a_file] == File: 755 exists: true canread: true canwrite: true canexecute: true children: [a_file] == File: 644/a_file exists: false canread: false canwrite: false canexecute: false children: null == File: 755/a_file exists: true canread: true canwrite: true canexecute: true children: null I'm actually really surprised that File.list() returns a list of files for the directory that does not have execute permissions. The problem with checking for execute permission is that it's a *NIX implementation detail: on Windows, it would fail. However, we *can* check to see that File.list() returns a list of files that do exist. If the deployment directory is empty at startup, there's no way to test this. We could check in WarWatcher.check() to see if watchDir.listFiles returns a list of non-existent files. There are some race-conditions there but we could issue a WARN log message that something funny might be going on. Unfortunately, anything that's going to be perfect is going to be a huge mess of platform-specific checks. Can you log a Bugzilla enhancement for this? I'll add some checking to WarWatcher as well as improved logging. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvt12AAoJEBzwKT+lPKRY9Y8P/1J7Txcg7BBvSF8v0lgDVOs8 uu//+/vzQBbCV8qk0cTXtwHet5165rQjsRA7Vf5uFPrj9EL1KJ/vAoMiS7QmeFoS gl2DGMtk1hXUNikxE0lRRuUlaKWoDOB7uowH2BHL5zKJEYZDASdXsXoNJ9pPGCTV EnnjtBmMvC6Br41UCXSfCEdFySR9StMblWGZply9VsRIRDNoc1Wz7BatBN0840NK Gukri2vlkNuiagno2I6NFBNZpU/uQ0a2r6xR0c5PS4ufzDy/n3VRljBNxHJy8I/r 4SmB7CwZXVE2cF2tg0+1xvta67qyyqvLe+CWURwTJvNu2DurVcVk3jO2JMFfXrHY C3xZyhyeV8q3RZshrpRw62dkpNUIN/dHnsEG0GtHSYHTuXDbSbbm0b5XdRQP0wGy umlHNkTwO2qfQT2dVCigNd7YNvMMwU9Z0S2k+vnx2+0NkuxMEHbzCuvD5Gv0XUHT XG01+JMz9m6j6QGJjDa8lpjubDPDpAvnJgVe/FHABQeZcJkMrXgT5Ew60Oa0PrFJ c/JgZTGR+8oeqDbmeMMRIBBQP7cQFaJHUIRWWAUwTMUaWeUT1afV91MR0oCNGZ50 oTTWrogipwewwWyUpZCTX7X3zJXs4z9yoEobm1XDB6in2jbq42Pru8QR+00s1FtZ SRNEoGN/aGY4MyxEh9Ve =nlfK -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
On 20 Jan 2015, at 23:42, Christopher Schultz ch...@christopherschultz.net wrote: Signed PGP part Théo, On 1/20/15 12:42 PM, Théo Chamley wrote: Thanks, found my problem by adding even more debugging than you. So, it came down to my watchDir being in 644 and not 755. So, missing the execute bit? Because of this, the war.exists() in the modified() function of the WarInfo class returned false. What was misleading is that the watchDir.listFiles(new WarFilter()) function (line 71 of WarWatcher.java) was able to list the content of the directory… I'll check out that behavior: WarWatcher can certainly use some polishing as I've seen by looking at a bit of that code. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Yes, that’s it. A chmod +x on my watchDir fixed the problem (I knew I was missing something silly…). As for Konstantin’s remark on the path, I changed it before posting and made a mistake at this moment. The real path, which is the same everywhere, contains the name of my client. Théo signature.asc Description: Message signed with OpenPGP using GPGMail
Re: FarmWarDeployer not checking watchDir
On 2015-01-16 19:33, Christopher Schultz wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUuVl6AAoJEBzwKT+lPKRYhIoQAJMzLhRpFFU5uERc4ssyxaVY DE8GPVm2QNW38cqrJevYA6MlOExCAbWZDRnp1sCaMG28mFNTg5aIvz4/R1dKOZ6+ sSYc8TZgnJTDELry0n6TgHfJsaU0iFY4dtajOL9vuOjcqrn0i0uNQaVo+8ziffm6 5/RKk7HmbqX+XMyvTqWeoNXLfcF6t4WN4TQ47GSlyAgcRiyo46aWvwcEBaiWLXp/ dK4WZKzbhhsfm1b6kAg8WGwCIuwW1hEIGTyQPgyR+yxny9imIfsCYdTOmOX744Ll VE+aaK2naSEqZcgN1D/C/479PJeorRNIgM46vzS8d36Cr6fB/jDUd8oOIGMpY5Rs NmiB/YJwb7pjrzgRggwy/73EEL5WsyIO4D/RYKa5SZcChSMjqmAR7Z+nQau6nBks jWC10kVJmUqAkVprzq7+0xnWHvk8BCxH16RTUmET3yDim/3F8/em2hLLpJLHROMd e9B0mP4rlLeSnB6bbBAmQU9bYuZlqplDJlEpSEPX6L9Xmcdy1jKA8eQ5vgm1AVN6 CTemn/+R+o+p7bWu3TyoSnkr0pK9AWIAr/BIXf7AztnHOU0Cwwsa9dlDP6c922fU Kb7fNZ1W6jJZcMRgR8otQf+HA9ypAsh+AmYZFgsLeaRUVXMmJcitMbELG3t95gEh La5UcqT2xHt6zQjRYfRU =I3ia -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Hello, Thank you for your answer. The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:04:47.962 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:05:07.967 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir Thanks, Théo - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/19/15 6:11 AM, Théo Chamley wrote: On 2015-01-16 19:33, Christopher Schultz wrote: Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Hello, Thank you for your answer. The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:04:47.962 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:05:07.967 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir It looks like WarWatcher looks for WAR files that end in .war specifically: it must be all lower-case. Would you be willing to build your own Tomcat from source if I send you a source patch? I could add some logging and you can get more information. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUvVgeAAoJEBzwKT+lPKRYn9YQAKk3yBdD0QE2I5R1OB/sl/5+ qb93Kj2mINoYn26HRF6mNpu/C02rcvX1A+pedcnz4FYhtaXhd5bPOI69GP8LBL6p akswioN3ziw++bWL8aCALK3TrfXh3Iylnikm7HH7YJWLAe6lEemafGP1Dfj3UrIO pmMgg+dWhFsknVTAL8FQJ3rrzFzRT4MJtndU2pIj0CsHAzVKRyr+4jEeQJPz0pnv Qb6sziVr83SuIL73lPMPeEu+lKznUEuJPVi1Svlhr7xnJ4Nbka5EFjD4aS7SRW7/ ipppRwMdh9jGV1I8dQG6GUH5oT488j+BWsJQ2WJ7sa+rpZg/kRUor41FYpB+YD1T kdIZ/xoBV5labbiTGYBpakgIcLyrAiZzvzlpUZOXWCPlDZmiwSzZNTBksHvTkALO qxjdxxvt9FvqneEoWKpI3qc7vSMk9+6ZNBMvGP3Jfj9YWn4NxesocKGiWirVXtbb xfoTL/OC4gKPjgLpDdHog8n3WkBJuPcaV9dwoFj18vM3evyH/n2J8b+ujMHLvwq4 Ks7NOyUCpQTGhz8+Hbn8OK/8zVQDj1W61LO/K0zV8QOqg0rla4mEGtoPkOE1DuMc dI5Q7b5fbiCdH4ORb7vmdY1LwygfMy2fD4pSmK6hcLatwKOETWI8sSBQmAdMjxWv 1R2OrJsb03ezEiDYVedW =nhqn -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: FarmWarDeployer not checking watchDir
On 19 Jan 2015, at 20:16, Christopher Schultz ch...@christopherschultz.net wrote: Signed PGP part Théo, On 1/19/15 6:11 AM, Théo Chamley wrote: On 2015-01-16 19:33, Christopher Schultz wrote: Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Hello, Thank you for your answer. The logs now show that the listen dir is checked, but nothing more, even if I repeatedly touch the ROOT.war file. And from the source code, I won't have more information from the logs… Could the mount options of the file system influence the result? My partition is mounted with rw,nosuid,nodev,noexec,noatime,nodiratime,data=ordered. 19-Jan-2015 12:04:27.956 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:04:47.962 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir 19-Jan-2015 12:05:07.967 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.ha.deploy.WarWatcher.check check cluster wars at /my/watch/dir It looks like WarWatcher looks for WAR files that end in .war specifically: it must be all lower-case. Would you be willing to build your own Tomcat from source if I send you a source patch? I could add some logging and you can get more information. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Hello, Yes, absolutely. Also, I just verified: the name of my file is exactly “ROOT.war”, with this case. Best, Théo signature.asc Description: Message signed with OpenPGP using GPGMail
Re: FarmWarDeployer not checking watchDir
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Théo, On 1/13/15 1:38 PM, Théo Chamley wrote: I have setup a Tomcat cluster and I am now trying to get the FarmWarDeployer to work. However, it seems that the Deployer never checks my watchDir and therefore never finds my new wars to deploy. When starting Tomcat, the logs indicate that the Deployer is started: 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster deployment is watching [/my/watch/dir/] for changes. 13-Jan-2015 19:21:43.942 INFO [Catalina-startStop-1] org.apache.catalina.ha.deploy.FarmWarDeployer.start Cluster FarmWarDeployer started. But nothing more, even for extended periods of time after putting my ROOT.war inside my watchDir. I checked the source code (https://github.com/apache/tomcat80/blob/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java), and it seems that the check must be done once every two backgroundProcess calls, but I don't understand when this function is supposed to be called or if there is a way to force the check. Can you enable DEBUG logging for org.apache.catalina.ha.deploy.WarWatcher? The backgroundProcess method will be called by the background thread that is launched for the server. It's not something you will generally have to manage yourself. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJUuVl6AAoJEBzwKT+lPKRYhIoQAJMzLhRpFFU5uERc4ssyxaVY DE8GPVm2QNW38cqrJevYA6MlOExCAbWZDRnp1sCaMG28mFNTg5aIvz4/R1dKOZ6+ sSYc8TZgnJTDELry0n6TgHfJsaU0iFY4dtajOL9vuOjcqrn0i0uNQaVo+8ziffm6 5/RKk7HmbqX+XMyvTqWeoNXLfcF6t4WN4TQ47GSlyAgcRiyo46aWvwcEBaiWLXp/ dK4WZKzbhhsfm1b6kAg8WGwCIuwW1hEIGTyQPgyR+yxny9imIfsCYdTOmOX744Ll VE+aaK2naSEqZcgN1D/C/479PJeorRNIgM46vzS8d36Cr6fB/jDUd8oOIGMpY5Rs NmiB/YJwb7pjrzgRggwy/73EEL5WsyIO4D/RYKa5SZcChSMjqmAR7Z+nQau6nBks jWC10kVJmUqAkVprzq7+0xnWHvk8BCxH16RTUmET3yDim/3F8/em2hLLpJLHROMd e9B0mP4rlLeSnB6bbBAmQU9bYuZlqplDJlEpSEPX6L9Xmcdy1jKA8eQ5vgm1AVN6 CTemn/+R+o+p7bWu3TyoSnkr0pK9AWIAr/BIXf7AztnHOU0Cwwsa9dlDP6c922fU Kb7fNZ1W6jJZcMRgR8otQf+HA9ypAsh+AmYZFgsLeaRUVXMmJcitMbELG3t95gEh La5UcqT2xHt6zQjRYfRU =I3ia -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org