stall in java (affects WO and JBoss apps)

"Chad Leigh -- ObjectWerks Inc." <[email protected]>
Newsgroups gmane.comp.web.webobjects.admin
Message-ID <[email protected]>
Hi

I have a Linux server that has developed a bad habit of stalling in  
java at the end of startup before an app starts running.  In WO,  
monitor launches the instance, and it goes through to here

.
.
.
[2004-02-02 16:14:21 MST] <main> WOAdditionalAdaptors=()
[2004-02-02 16:14:21 MST] <main> WOLifebeatDestinationPort=1085
[2004-02-02 16:14:21 MST] <main> WOPort=2001
[2004-02-02 16:14:21 MST] <main> WOLifebeatInterval=30
[2004-02-02 16:14:21 MST] <main> WOSocketCacheSize=100
[2004-02-02 16:14:21 MST] <main>  
WOUserDirectory=/usr/local/webobjects/wo52/Library/WebObjects/ 
JavaApplications/wotaskd.woa
[2004-02-02 16:14:21 MST] <main> WODisplayExceptionPages=false
[2004-02-02 16:14:21 MST] <main> com.webobjects.pid = 3424
[2004-02-02 16:14:21 MST] <main> ------------------------

then hangs for 3.xx minutes and then continues on with the initial db  
fetches etc.  Monitor thinks it is dead though since it doesn't respond  
back within that 3.xx minutes.  I also have a JBoss app that goes  
through all its inits and stalls for 3.xx minutes before it starts  
running.  So I don't think it is a WO problem per se, but a java  
installation problem.  I have not run WO on this server before, but the  
JBoss app was working previously.  Not a lot  has changed on it either  
:-(  The jvm installed is both the Sun 1.4.1_03 and 1.4.2_03 (it  
happens with both).  During the pause time, I sent a SIGQUIT to the  
main thread of the WO app and this is what it looks like:  Can anyone  
see anything in this dump on where it is waiting? I think the "main"  
but I don't know what it is really trying to do there.  I have checked  
and at least from the command line I can do DNS lookups and reverse  
lookups so it doesn't appear to be waiting for a DNS. It kind of looks  
like a DNS request is sent about the stall time by looking at the  
firewall logs, but it is hard to see and looking at debug output from  
my DNS server on another host I don't see a DNS request coming in that  
stalls.


Full thread dump Java HotSpot(TM) Client VM (1.4.1_03-b02 mixed mode):

"Signal Dispatcher" daemon prio=1 tid=0x0x4c404f28 nid=0xe2e waiting on  
condition [0..0]

"Finalizer" daemon prio=1 tid=0x0x4c400578 nid=0xe2b in Object.wait()  
[4c3e2000..4c3e28b0]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x446f2948> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
         - locked <0x446f2948> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
         at  
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x0x8086748 nid=0xe2a in  
Object.wait() [4c361000..4c3618b0]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x446f29b0> (a java.lang.ref.Reference$Lock)
         at java.lang.Object.wait(Object.java:426)
         at  
java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
         - locked <0x446f29b0> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x0x80528e0 nid=0xe27 runnable [bfffb000..bfffd0dc]
         at java.net.PlainSocketImpl.initProto(Native Method)
         at java.net.PlainSocketImpl.<clinit>(PlainSocketImpl.java:62)
         at java.net.ServerSocket.setImpl(ServerSocket.java:236)
         at java.net.ServerSocket.<init>(ServerSocket.java:178)
         at  
com.webobjects.appserver._private.WODefaultAdaptor._initServerSocket(WOD 
efaultAdaptor.java:157)
         at  
com.webobjects.appserver._private.WODefaultAdaptor.<init>(WODefaultAdapt 
or.java:140)
         at  
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at  
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA 
ccessorImpl.java:39)
         at  
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons 
tructorAccessorImpl.java:27)
         at  
java.lang.reflect.Constructor.newInstance(Constructor.java:274)
         at  
com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.ja 
va:529)
         at  
com.webobjects.appserver.WOApplication.adaptorWithName(WOApplication.jav 
a:909)
         at  
com.webobjects.appserver.WOApplication._initAdaptors(WOApplication.java: 
955)
         at  
com.webobjects.appserver.WOApplication.<init>(WOApplication.java:509)
         at Application.<init>(Application.java:30)
         at  
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at  
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA 
ccessorImpl.java:39)
         at  
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons 
tructorAccessorImpl.java:27)
         at  
java.lang.reflect.Constructor.newInstance(Constructor.java:274)
         at java.lang.Class.newInstance0(Class.java:306)
         at java.lang.Class.newInstance(Class.java:259)
         at  
com.webobjects.appserver.WOApplication.main(WOApplication.java:296)
         at Application.main(Application.java:26)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav 
a:39)
         at  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor 
Impl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at  
com.webobjects._bootstrap.WOBootstrap.main(WOBootstrap.java:71)

"VM Thread" prio=1 tid=0x0x8083518 nid=0xe29 runnable

"VM Periodic Task Thread" prio=1 tid=0x0x4c403c68 nid=0xe2c waiting on  
condition
"Suspend Checker Thread" prio=1 tid=0x0x4c404560 nid=0xe2d runnable
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.