Re: [Simpleweb-Support] Simple stops responding
Brought to you by:
niallg
|
From: Niall G. <gal...@ya...> - 2005-07-28 16:49:36
|
Hi,
This is interesting, I would like to know what
conclusions you come to! However, I have tested simple
with really enormous loads, for a long period of time,
the only problem I could find was with the log files.
They were too big and the system ran out of disk
space! Still requests were being processed fine!
Just downloaded the simple-demo-1.0.tar.gz from the
site with no problems. I will send it to you directly.
Niall
--- Jorge CAMPOS <Jor...@ge...> wrote:
> Hi Niall!
>
> First of all thank you for your support.
>
> The problem we have is not an HTTP problem. In a
> network environment is
> common that connections get broken and I agree that
> it is probably logical
> to close the connection.
>
> But our issue is that after stressing Simple with
> JMeter, the Simple stops
> responding. I mean, the ServerSocket continues to
> accept connections, but
> the requests are not treated. The rest of the
> application continues to run
> normally.
>
> It seems like there are no more resources to handle
> the incoming requests
> (all previous requests were finished, so the pool
> should be able to process
> more, but nothing happens).
>
> Henry thought it could be related to the
> Poller.close(), thinking perhaps a
> thread was removed from the pool and none was
> created to replace it.
>
> I'm trying to download your demo server to reproduce
> the problem, but I
> can't download it from your download section
> (timeout, broken file, etc).
> Can you put the files in the files section of
> sourceforge (I guess at least
> one mirror should work for me).
>
> Thank you very much for your support.
>
> Jorge
>
>
> -----Original Message-----
> From: sim...@li...
>
[mailto:sim...@li...]On
> Behalf Of Niall
> Gallagher
> Sent: Tuesday, July 26, 2005 3:24 PM
> To: sim...@li...
> Subject: RE: [Simpleweb-Support] Problem when stress
> testing an
> application using SimpleWeb
>
>
> Hi Henry,
>
> The reason the connection is closed is because RFC
> 2616 says that this is the way this must be done!
> For
> example, that the scenario where the request
> conatins
> a larger chunked encoded message body, and then you
> read only half of it. If the poller is not closed,
> where do you read the next request header from? Also
> if you send some wrong information how is the
> browser
> supposed to interpret it?
>
> Anyway, there is a large section in the HTTP/1.1
> specification that discusses pipelining and its
> semantics. It should provide some more detail.
>
> Niall
>
> --- Henry Voyer <hen...@ge...> wrote:
>
> > Re Hi Neil,
> >
> > Well i found the problem and fixed it. And i would
> > like your input about it.
> > The problem is when the client suddently close the
> > stream and this happens
> > often in highly concurrent transactions.
> >
> > java.io.IOException: Stream closed
> > at
> >
>
java.io.PushbackInputStream.ensureOpen(PushbackInputStream.java:57)
> > at
> >
>
java.io.PushbackInputStream.unread(PushbackInputStream.java:181)
> > at
> >
>
simple.http.PollerInputStream.available(PollerInputStream.java:114)
> > at
> >
>
simple.http.BasicPoller.process(BasicPoller.java:117)
> > at
> > simple.http.Processor.execute(Processor.java:121)
> > at simple.http.Processor.run(Processor.java:83)
> > at java.lang.Thread.run(Thread.java:595)
> >
> > Then the exception makes the closes the poller
> >
> > This happens, in the class : simple.http.Processor
> >
> > private void execute() throws
> InterruptedException
> > {
> > Object top = queue.dequeue();
> > Poller poller = (Poller)top;
> > try{
> > poller.process(proc);
> > }catch(Exception e){
> > poller.close();
> > }
> > }
> >
> > Why close the poller?
> >
> >
> > My fix consist in removing the try catch, and
> > removing the line of the
> > pooler.close
> >
> > the code is :
> >
> > private void execute() throws IOException,
> > InterruptedException {
> > Object top = queue.dequeue();
> > Poller poller = (Poller) top;
> > poller.process(proc);
> > }
> >
> > then is catched in the run method
> >
> > public void run() {
> > while (alive) {
> > try {
> > execute();
> > }
> > catch (IOException e) {
> > l
> > }
> > catch (InterruptedException e) {
> > logger.error("Interrupted exception
> > while executing an request",
> > e);
> > }
> > }
> > }
> >
> >
> > -----Original Message-----
> > From:
> sim...@li...
> >
>
[mailto:sim...@li...]On
> > Behalf Of Henry
> > Voyer
> > Sent: Tuesday, July 26, 2005 1:06 PM
> > To: sim...@li...
> > Cc: jor...@ge...
> > Subject: RE: [Simpleweb-Support] Problem when
> stress
> > testing an
> > application using SimpleWeb
> >
> >
> > Hi Neil,
> >
> > Thanks for answering.
> >
> > We know thats part of the problem. But for the
> HTTP
> > processing that doesnt
> > mean that simple has to stop processing more
> > requests comming from the same
> > or other clients. It looks like the poller.close()
> > does just that. One error
> > and everything stops.
> >
> > Il continue checking to see exactly at what
> > request/ratio it happens and
> > exacly why.
> >
> > Regards
> > And thanks
> >
> > henry
> >
> >
> >
> >
> > -----Original Message-----
> > From:
> sim...@li...
> >
>
[mailto:sim...@li...]On
> > Behalf Of Niall
> > Gallagher
>
=== message truncated ===
Niall Gallagher
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
|