Mantis - Resin
Viewing Issue Advanced Details
4580 block always 05-26-11 10:33 07-07-11 12:22
danielnuriyev  
ferg  
normal  
closed 4.0.18  
fixed  
none    
none 4.0.20  
0004580: Resin does not shut down properly
I ran Resin without changing anything. After I shut it down, I see this in global-application:
[13:12:20.926]WarningService: Resin shutdown from unexpected watchdog exit.
[13:12:20.935]ProServer[id=app-d,cluster=app-tier] stopping
[13:12:20.939]Host[production/host/default] stopping
[13:12:20.944]WebApp[production/webapp/default/resin-config] stopping
[13:12:21.012]WebApp[production/webapp/default/resin-doc] stopping
[13:12:21.027]WebApp[production/webapp/default/resin-admin] stopping
[13:12:21.057]ClusterServer[id=app-d] notify-heartbeat-stop

I see this in server-err.log:
[11/05/26 13:12:20.924] WarningService: Resin shutdown from unexpected watchdog exit.

I see this in watchdog-manager.log:
[2011/05/26 13:12:19.539] {MailboxWorker[watchdog@admin.resin.caucho]-12} WatchdogService[watchdog@admin.resin.caucho] shutdown from @aaa.default.admin.resin/1302d470821

This causes Resin to die on the spot without proper shutdown. I know this because destroy() method is not called in servlets.

Notes
(0005286)
ferg   
06-01-11 09:42   
The first log does show Resin shutting down gracefully. The servlets are closed after the WebApp[...] stopping phase, and the notify-heartbeat-stop is called after all the hosts are shut down.

It looks like your servlet is the .../resin-config?
(0005287)
danielnuriyev   
06-02-11 06:44   
My servlet is not in .../resin-config. I have my own webapp and this is where the servlet is.

I am surprised that "WarningService: Resin shutdown from unexpected watchdog exit." means graceful shutdown.

I know that Resin did not shut down as before because destroy() method of my servlet is not called. I have important code with detailed logging in destroy() and in 4.0.17 and 4.0.18 I do not see that it is called on Linux. On Windows it is called.

If there is another way to call code on webapp shutdown, please, tell me. But as far as I know a servlet's destroy() is the commonly used one.
(0005368)
ferg   
07-07-11 12:22   
server/0310, server/0311