RE: HttpManager hangs.

From: Yves Lafon <ylafon@w3.org>
Date: Thu, 16 Aug 2001 18:18:42 +0200 (MET DST)
To: Owen Roberts <oroberts@baltimore.com>
cc: Harmeet <harmeet@kodemuse.com>, <www-jigsaw@w3.org>
Message-ID: <Pine.GSO.4.33.0108161815170.14841-100000@tarantula.inria.fr>
On Thu, 16 Aug 2001, Owen Roberts wrote:

> Hi - heres a stack trace of the process when it has locked up.
> I just hit exit on the command prompt - forcing this text up.

Can you retry with a modification of the
org.w3c.www.protocol.http.connections.max property?
By default it should be around 5, please try with something better like
100
(edit http-server.props, or it should be available from the Proxy perperty
(max connections).
Does it stays forever that way or is the socket timeout kicking in at some
point?

>
> Thanks ,
> OWen
>
>
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
>
> state:CW
> , native ID:0x3a8) prio=1
> Compiled
> Code)
> state:C
> W, native ID:0x618) prio=10
>         at java.lang.Object.wait(Object.java:424)
> Compiled
> Code)
>     "Finalizer" (TID:0x14d9320, sys_thread_t:0x498e1c8, state:CW, native
> ID:0x76
> 4) prio=8
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:112)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
>     "Reference Handler" (TID:0x14d93b0, sys_thread_t:0x498a2e0, state:CW,
> native
>  ID:0x44c) prio=10
>         at java.lang.Object.wait(Object.java:424)
>         at java.lang.ref.Reference\$ReferenceHandler.run(Reference.java:114)
>     "Signal dispatcher" (TID:0x14d93e0, sys_thread_t:0x49891f8, state:R,
> native
> ID:0x6c4) prio=5
>     "main" (TID:0x14d91e0, sys_thread_t:0x2f8198, state:CW, native ID:0x608)
> pri
> o=5
>         at java.lang.Object.wait(Object.java:424)
>         at
> org.w3c.www.protocol.http.HttpManager.waitForConnection(HttpManager.j
> ava:597)
>         at
> org.w3c.www.protocol.http.HttpBasicServer.getConnection(HttpBasicServ
> er.java, Compiled Code)
>         at
> org.w3c.www.protocol.http.HttpBasicServer.runRequest(HttpBasicServer.
> java, Compiled Code)
>         at
> org.w3c.www.protocol.http.HttpManager.runRequest(HttpManager.java, Co
> mpiled Code)
>         at testProblem.main(testProblem.java, Compiled Code)
> Monitor Cache Dump:
>         Waiting to be notified:
>             "SymcJIT-LazyCompilation-PA" (0x4a48008)
>     java.lang.ref.ReferenceQueue\$Lock@14D9338/150ED78: <unowned>
>         Waiting to be notified:
>             "Finalizer" (0x498e1c8)
>     org.w3c.www.protocol.http.HttpManager@150B4C8/1642AB0: <unowned>
>         Waiting to be notified:
>             "main" (0x2f8198)
>     java.lang.ref.Reference\$Lock@14D93C0/150E8A8: <unowned>
>         Waiting to be notified:
>             "Reference Handler" (0x498a2e0)
> Registered Monitor Dump:
>     SymcJIT Method Monitor: <unowned>
>     SymcJIT Method Monitor: <unowned>
>     SymcJIT Lazy Queue Lock: <unowned>
>         Waiting to be notified:
>             "SymcJIT-LazyCompilation-0" (0x4a49140)
>     SymcJIT Method Monitor: <unowned>
>     SymcJIT Method List Monitor: <unowned>
>     SymcJIT Lock: <unowned>
>     utf8 hash table: <unowned>
>     JNI pinning lock: <unowned>
>     JNI global reference lock: <unowned>
>     BinClass lock: <unowned>
>     System class loader lock: <unowned>
>     Code rewrite lock: <unowned>
>     Heap lock: <unowned>
>     Monitor cache lock: owner "Signal dispatcher" (0x49891f8) 1 entry
>     Thread queue lock: owner "Signal dispatcher" (0x49891f8) 1 entry
>     Monitor registry: owner "Signal dispatcher" (0x49891f8) 1 entry
>
>
>
> changing GET to a POST ..
>
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
> complete a get...
> start a get...
>
> state:CW
> , native ID:0x4e4) prio=1
> Compiled
> Code)
> state:C
> W, native ID:0x3a8) prio=10
>         at java.lang.Object.wait(Object.java:424)
> Compiled
> Code)
>     "Finalizer" (TID:0x14d9320, sys_thread_t:0x498e1c8, state:CW, native
> ID:0x39
> 0) prio=8
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:112)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
>     "Reference Handler" (TID:0x14d93b0, sys_thread_t:0x498a2e0, state:CW,
> native
>  ID:0x44c) prio=10
>         at java.lang.Object.wait(Object.java:424)
>         at java.lang.ref.Reference\$ReferenceHandler.run(Reference.java:114)
>     "Signal dispatcher" (TID:0x14d93e0, sys_thread_t:0x49891f8, state:R,
> native
> ID:0x764) prio=5
>     "main" (TID:0x14d91e0, sys_thread_t:0x2f8198, state:CW, native ID:0x464)
> pri
> o=5
>         at java.lang.Object.wait(Object.java:424)
>         at
> org.w3c.www.protocol.http.HttpManager.waitForConnection(HttpManager.j
> ava:597)
>         at
> org.w3c.www.protocol.http.HttpBasicServer.getConnection(HttpBasicServ
> er.java, Compiled Code)
>         at
> org.w3c.www.protocol.http.HttpBasicServer.runRequest(HttpBasicServer.
> java, Compiled Code)
>         at
> org.w3c.www.protocol.http.HttpManager.runRequest(HttpManager.java, Co
> mpiled Code)
>         at testProblem.main(testProblem.java, Compiled Code)
> Monitor Cache Dump:
>         Waiting to be notified:
>             "SymcJIT-LazyCompilation-PA" (0x4a48008)
>     java.lang.ref.ReferenceQueue\$Lock@14D9338/150ED78: <unowned>
>         Waiting to be notified:
>             "Finalizer" (0x498e1c8)
>     org.w3c.www.protocol.http.HttpManager@150B4C8/1642AB0: <unowned>
>         Waiting to be notified:
>             "main" (0x2f8198)
>     java.lang.ref.Reference\$Lock@14D93C0/150E8A8: <unowned>
>         Waiting to be notified:
>             "Reference Handler" (0x498a2e0)
> Registered Monitor Dump:
>     SymcJIT Method Monitor: <unowned>
>     SymcJIT Lazy Queue Lock: <unowned>
>         Waiting to be notified:
>             "SymcJIT-LazyCompilation-0" (0x4a49140)
>     SymcJIT Method Monitor: <unowned>
>     SymcJIT Method List Monitor: <unowned>
>     SymcJIT Lock: <unowned>
>     utf8 hash table: <unowned>
>     JNI pinning lock: <unowned>
>     JNI global reference lock: <unowned>
>     BinClass lock: <unowned>
>     System class loader lock: <unowned>
>     Code rewrite lock: <unowned>
>     Heap lock: <unowned>
>     Monitor cache lock: owner "Signal dispatcher" (0x49891f8) 1 entry
>     Thread queue lock: owner "Signal dispatcher" (0x49891f8) 1 entry
>     Monitor registry: owner "Signal dispatcher" (0x49891f8) 1 entry
>
>
> > -----Original Message-----
> > From: Yves Lafon [mailto:ylafon@w3.org]
> > Sent: 16 August 2001 16:48
> > To: Harmeet
> > Cc: Owen Roberts; www-jigsaw@w3.org
> > Subject: Re: HttpManager hangs.
> >
> >
> > On Thu, 16 Aug 2001, Harmeet wrote:
> >
> > > I did the test with timing for
> > > http://www.yahoo.com/
> > > http://www.kodemuse.com/index.html   (this is my LAN Connected Site)
> > >
> > > http://www.yahoo.com/
> > > tried 30 iterations, total time=190 ms, did not hang
> > >
> > > http://www.kodemuse.com/index.html
> > > tried 30 iterations, total time=21 ms, did not hang
> > >
> > > tried 30 iterations, stopped after 5. :-(
> > >
> > > Tried again
> > > tried 30 iterations, stopped after 6. :-(
> >
> > Would it be possible th have a thread dump when that happens?
> >
> > > I am running on Windows 2000 and JDK 1.3.
> > >
> > > I have had one similar experience with Jigsaw:
> > > In my past life, Jigsaw used to  hang when serving static
> > files in a stress
> > > test/production environment. The workaround was use
> > Servlets instead of the
> > > default Resource Handlers. It worked well.
> >
> > Same here, If it is due to a locking problem, having a stack trace may
> > help chasing it. Note that it never happened here while doing stress
> > tests.
> >
> > > Not sure what the right solution for HttpManager is. Maybe
> > you could switch
> > > of some code there that you don't find useful/easy to
> > >
> > > Harmeet
> > > ----- Original Message -----
> > > From: "Owen Roberts" <oroberts@baltimore.com>
> > > To: "Harmeet" <harmeet@kodemuse.com>
> > > Sent: Thursday, August 16, 2001 3:01 AM
> > > Subject: RE: HttpManager hangs.
> > >
> > >
> > > > Hi Harmeet,
> > > >
> > > > Thanks very much for replying! Was the problem with
> > Google the same as I
> > > > experienced?
> > > >
> > > > I changed the code as you suggested.
> > > > With http://www.yahoo.com/ it's fine - and does the 30 iterations.
> > > > With http://www.google.com/, however it stops after 5.
> > > > Also, with localhost, using a jigsaw server, it also
> > stops after 5.
> > > > And, with an internal lan web server running IIS, it
> > stops after 5.
> > > >
> > > > This implies to me that when this operation is done in a
> > fast loop, it
> > > > hangs. Yahoo is a slower web page than the other three
> > examples. I am
> > > pretty
> > > > sure this is a bug as it occurs with multiple server
> > types and locations
> > > > that are fast.
> > > >
> > > > Can you please try the operation with a local server? If
> > you place these 2
> > > > files in the Jigsaw directory on a Win32 machine, all you
> > have to do is
> > > hit
> > > > the batch file... although it feels like you are running
> > Linux? :-)
> > > >
> > > > Thanks very much,
> > > > OWen
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Harmeet [mailto:harmeet@kodemuse.com]
> > > > > Sent: 16 August 2001 7:36
> > > > > To: Owen Roberts
> > > > > Subject: Re: HttpManager hangs.
> > > > >
> > > > >
> > > > > I ran a slightly diffierent test, and it worked.
> > > > > I used this jpython code to run the test. Thought it
> > was simpler and
> > > > > functionally equivalent
> > > > >
> > > > > def jighttptest():
> > > > >     from org.w3c.www.protocol.http import HttpManager
> > > > >     from java.net import URL
> > > > >     mgr = HttpManager.getManager()
> > > > >     u = URL('http://www.yahoo.com/')
> > > > >     for i in range(0,30):
> > > > >         req = mgr.createRequest() ;
> > > > >         req.setMethod('GET')
> > > > >         req.setURL(u)
> > > > >         reply = mgr.runRequest(req);
> > > > >         print i,'done'
> > > > >
> > > > > This test worked fine. I had a problem with google, but I
> > > > > doubt that has
> > > > > anything to do with Jigsaw.
> > > > >
> > > > > Harmeet
> > > > > ----- Original Message -----
> > > > > From: "Owen Roberts" <oroberts@baltimore.com>
> > > > > To: <www-jigsaw@w3.org>
> > > > > Sent: Wednesday, August 15, 2001 5:41 AM
> > > > > Subject: HttpManager hangs.
> > > > >
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > I am having real difficulty working out why HttpManager
> > > > > from Jigsaw 2.2.0
> > > > > is
> > > > > > hanging on me. Can I ask a huge favour of the list - this
> > > > > should only take
> > > > > > two minutes.
> > > > > > Could someone else that is using Jigsaw 2.2.0 please
> > > > > confirm that they can
> > > > > > reproduce this problem?
> > > > > > Below are two files - i didn't attach them as Im not sure
> > > > > of attachment
> > > > > > etiquette.
> > > > > > The first will build the second under Win32 if you recreate
> > > > > these files
> > > > > > under the root of your Jigsaw installation directory.
> > > > > >
> > > > > > The output should be 30 iterations of the loop, GETting a
> > > > > known fast web
> > > > > > page.
> > > > > > HOwever, only a few iterations are printed out before the
> > > > > program hangs
> > > > > > inside manager.runRequest();
> > > > > >
> > > > > > I would be _very_ appreciative of anyone who can confirm
> > > > > this is a bug so
> > > > > I
> > > > > > can raise it with the Jigsaw team.
> > > > > >
> > > > > > Thanks _very_ much for your time,
> > > > > > Owen Roberts.
> > > > > >
> > > > > >
> > > > > > -------------------testProblem.bat----------------
> > > > > > set CLASSPATH=classes\jigsaw.jar;.;
> > > > > > javac -classpath %CLASSPATH% testProblem.java
> > > > > > java -classpath %CLASSPATH% testProblem
> > > > > > ----------------------end testProblem.bat--------------
> > > > > >
> > > > > > -----------------start testProblem.java-------
> > > > > > import java.lang.String;
> > > > > > import java.net.*;
> > > > > > import java.io.*;
> > > > > > import java.util.*;
> > > > > > import org.w3c.www.protocol.http.HttpManager;
> > > > > > import org.w3c.www.protocol.http.HttpException;
> > > > > > import org.w3c.www.protocol.http.Reply;
> > > > > > import org.w3c.www.protocol.http.Request;
> > > > > > import org.w3c.www.http.HTTP;
> > > > > > import org.w3c.www.mime.MimeType;
> > > > > >
> > > > > >
> > > > > > public final class testProblem
> > > > > > {
> > > > > >     public static void main (String[] args)
> > > > > >     {
> > > > > >         HttpManager     manager = HttpManager.getManager() ;
> > > > > >         for (int i=0; i<30; i++)
> > > > > >         {
> > > > > >             try
> > > > > >             {
> > > > > >                 Request request = manager.createRequest() ;
> > > > > >                 request.setMethod("GET") ;
> > > > > >                 request.setURL(new
> > > > > >                 System.out.println("start a get...");
> > > > > >                 System.out.println("complete a get...");
> > > > > >             }
> > > > > >             catch(MalformedURLException e)
> > > > > >             {
> > > > > >                 System.out.println("caught: " + e.toString());
> > > > > >             }
> > > > > >             catch(HttpException e)
> > > > > >             {
> > > > > >                 System.out.println("caught: " + e.toString());
> > > > > >             }
> > > > > >             catch(IOException e)
> > > > > >             {
> > > > > >                 System.out.println("caught: " + e.toString());
> > > > > >             }
> > > > > >         }
> > > > > >     }
> > > > > > }
> > > > > > ----------------------------end
> > testProblem.java-----------------
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > --------------------------------------------------------------
> > > > > ------------
> > > > > ---
> > > > > > Baltimore Technologies plc will not be liable for
> > direct,  special,
> > > > > indirect
> > > > > > or consequential  damages  arising  from  alteration of
> > > > > the contents of
> > > > > this
> > > > > > message by a third party or as a result of any virus being
> > > > > passed on.
> > > > > >
> > > > > > In addition, certain Marketing collateral may be added from
> > > > > time to time
> > > > > to
> > > > > > promote Baltimore Technologies products, services, Global
> > > > > e-Security or
> > > > > > appearance at trade shows and conferences.
> > > > > >
> > > > > > This footnote confirms that this email message has
> > been swept by
> > > > > > Baltimore MIMEsweeper for Content Security threats, including
> > > > > > computer viruses.
> > > > > >    http://www.baltimore.com
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > This footnote confirms that this email message has been swept by
> > > > > MIMEsweeper for the presence of computer viruses.
> > > > >
> > > >
> > > >
> > >
> > >
> >
> > --
> > Yves Lafon - W3C
> > "Baroula que barouleras, au tiéu toujou t'entourneras."
> >
>

--
Yves Lafon - W3C
"Baroula que barouleras, au tiéu toujou t'entourneras."
Received on Thursday, 16 August 2001 12:18:57 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:25:37 UTC