|Anonymous | Login | Signup for a new account||07-22-2019 17:48 PDT|
|Main | My View | View Issues | Change Log | Docs|
|Viewing Issue Advanced Details [ Jump to Notes ]||[ View Simple ] [ Issue History ] [ Print ]|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0004969||[Resin]||major||always||02-28-12 07:32||06-19-12 13:03|
|ETA||none||Fixed in Version||4.0.29||Product Version||4.0.24|
|Summary||0004969: ServletContextListener.contextDestroyed() not called when resin is told to shutdown|
I notice there is a bug (4331, and 4325 related) already logged and closed for this, but it was flagged as 'can not reproduce'. I can reproduce this reliably in my environment.
I have a ServletContextListener implementation that prints to StdOut, StdErr and throws an Exception in the contextDestroyed() method. I have added it as a listener in my web.xml, and the resin logs show that the context initialized message is being printed when I start the server.
The contextDestroyed() method does not get executed when I exit the server using "resin.sh shutdown".
It does however get executed when I call "resin.sh stop" and also when I dump a new war file into the web-apps directory forcing a restart.
Another interesting thing I can see is that killing the child server process (the one that the watchdog starts) manually using 'kill' calls the contextDestroyed() method. However, killing the parent watchdog process does NOT call it.
I do not have "shutdown-wait-max" defined anywhere in my resin.xml, so I assume this allows me to have 60s to perform shutdown code. I should be able to write to StdOut quite easily in that time.
I have also tested this using JVM shutdown hooks (Runtime.getRuntime().addShutdownHook) instead of contextDestroyed, and I get the exact same results.
This does not matter if you use resin.sh or pass "shutdown" as an argument directly to resin.jar
|Steps To Reproduce|
This should behave as I have described as only "kill" should close uncleanly. This can be seen in this blog post: http://blog.caucho.com/2011/08/29/stopping-resin-stop-shutdown-or-kill/ [^]
A workaround is to simply call stop on all your servers instead of shutdown.
|02-28-12 07:32||aiman_a||New Issue|
|06-19-12 13:03||ferg||Note Added: 0005883|
|06-19-12 13:03||ferg||Assigned To||=> ferg|
|06-19-12 13:03||ferg||Status||new => closed|
|06-19-12 13:03||ferg||Resolution||open => fixed|
|06-19-12 13:03||ferg||Fixed in Version||=> 4.0.29|
| Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed.|
26 unique queries executed.