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 |