I wanted to let you know it worked. The system.exit does get trapped. java.lang.Error: Cleaner terminated abnormally at sun.misc.Cleaner$1.run(Cleaner.java:130) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.Cleaner.clean(Cleaner.java:127) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:124) Caused by: java.lang.Error: java.io.IOException: Broken pipe at sun.nio.ch.Util$SelectorWrapper$Closer.run(Util.java:97) at sun.misc.Cleaner.clean(Cleaner.java:125) ... 1 more Caused by: java.io.IOException: Broken pipe at sun.nio.ch.EPollArrayWrapper.interrupt(Native Method) at sun.nio.ch.EPollArrayWrapper.interrupt(EPollArrayWrapper.java:242) at sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:170) at sun.nio.ch.SelectorImpl.implCloseSelector(SelectorImpl.java:92) at java.nio.channels.spi.AbstractSelector.close(AbstractSelector.java:91) at sun.nio.ch.Util$SelectorWrapper$Closer.run(Util.java:95) ... 2 more Exception in thread "Reference Handler" java.lang.SecurityException: Can't call System.exit() at com.emessenger.web.CustomSecurityManager.checkExit(CustomSecurityManager .java:22) at java.lang.Runtime.exit(Runtime.java:88) at java.lang.System.exit(System.java:906) at sun.misc.Cleaner$1.run(Cleaner.java:132) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.Cleaner.clean(Cleaner.java:127) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:124)
- What we see is, GC breaks and class unloading starts after the first full GC: [Unloading class sun.reflect.GeneratedMethodAccessor100] [Unloading class sun.reflect.GeneratedConstructorAccessor76] [Unloading class sun.reflect.GeneratedConstructorAccessor80] [Unloading class sun.reflect.GeneratedConstructorAccessor77] [Unloading class sun.reflect.GeneratedMethodAccessor95] [Unloading class sun.reflect.GeneratedMethodAccessor98] [Unloading class sun.reflect.GeneratedConstructorAccessor78] [Unloading class sun.reflect.GeneratedMethodAccessor106] [Unloading class sun.reflect.GeneratedMethodAccessor91] [Unloading class sun.reflect.GeneratedMethodAccessor105] [Unloading class sun.reflect.GeneratedMethodAccessor85] - And then Full GC madness begins: [GC 4080947K(4177280K), 0.0603370 secs] [GC 4090738K(4177280K), 0.0683390 secs] [Full GC 4177280K->4081390K(4177280K), 16.2954960 secs] [GC 4081673K(4177280K), 0.0607990 secs] [GC 4097803K(4177280K), 0.0739870 secs] [Full GC 4177279K->4081951K(4177280K), 16.2857450 secs] [GC 4082100K(4177280K), 0.0614000 secs] [GC 4101581K(4177280K), 0.0814330 secs] [Full GC 4177279K->4082845K(4177280K), 16.2079870 secs] [GC 4084452K(4177280K), 0.0628080 secs] [GC 4106928K(4177280K), 0.0835720 secs] [Full GC 4177279K->4083187K(4177280K), 16.3403530 secs] [GC 4084203K(4177280K), 0.0627750 secs] [GC 4101856K(4177280K), 0.0737540 secs] [Full GC 4177278K->4083998K(4177280K), 16.2605530 secs] [GC 4084493K(4177280K), 0.0632620 secs] [GC 4107486K(4177280K), 0.0804700 secs] [Full GC 4177278K->4084298K(4177280K), 16.3931240 secs] [GC 4084500K(4177280K), 0.0633480 secs] [Full GC 4177279K->4085842K(4177280K), 16.4017970 secs] [GC 4096666K(4177280K), 0.0702090 secs] [GC 4127816K(4177280K), 0.1089220 secs] - But it's still better then an instant shutdown. -----Original Message----- From: Caldarale, Charles R [mailto:chuck.caldar...@unisys.com] Sent: donderdag 19 februari 2009 16:22 To: Tomcat Users List Subject: RE: Fatal error: Cleaner terminated abnormally > From: Taylan Develioglu [mailto:tdevelio...@ebuddy.com] > Subject: Re: Fatal error: Cleaner terminated abnormally > > By trapping the exit call using security manager we hope to prevent > Tomcat from closing down on a cleaner termination. This is not likely to work, since the Cleaner is running this code as a privileged operation; if regular applications could trap those, I think there would be some serious security holes. > Not sure what the side effects would be to keep running > after a cleaner terminates (any idea). The thread doing the System.exit() call is the reference handler; the JVM will not function properly if it's not running. The exception should have been logged and ignored, not result in JVM termination, but I suspect it will be difficult to convince Sun of that at this point. > I forgot to say thanks for the response guys. Especially > yours Chris, it was very helpful. Odd, because Chris didn't participate in this thread... - 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 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org