GithubHelp home page GithubHelp logo

Comments (4)

hanshuebner avatar hanshuebner commented on May 20, 2024

Please provide detailed instructions to reproduce the suspected bug.

On Tue, Apr 9, 2013 at 10:30 AM, Zplay [email protected] wrote:

Hello,

After running hunchentoot within Caveman framework, after a while I get
this error :

Can't handle a new request, too many request threads already

and the server stop responding. I have this problem with latest
hunchentoot package available on quicklisp at this time, and tried
differents versions of SBCL but the problem is still the same.

It seems that doing some request with curl crash the server sooner than
loading it with firefox.

I don't know what informations I can add to h elp.


Reply to this email directly or view it on GitHubhttps://github.com//issues/54
.

from hunchentoot.

rapenne-s avatar rapenne-s commented on May 20, 2024

First, create a caveman app and start it :

(ql:quickload :caveman)
(caveman.skeleton:generate #p"test")
(ql:quickload :test)
(test:start)

Start "apache benchmark" ab command :

ab -c 500 -n 1000 http://localhost:5000/

it'll breaks the app started. I know that 500 concurrents is BIG, but you can also try with -c 50 and press CTRL+C to break connections, 2 or 3 times doing it break the app too.

I am not sure it is a problem with hunchentoot. Caveman is using Clack which uses hunchentoot, but if I replace hunchentoot with fastcgi or mod_lisp, I can't reproduce something like that.

from hunchentoot.

hanshuebner avatar hanshuebner commented on May 20, 2024

What do you mean by "break the app"? If you mean that requests end up in
error, then this is the expected behavior if you overload the server. If
you mean that the server crashes and never becomes responsive again, then
this would be something that needs to be fixed.

The message "Can't handle a new request, too many request threads already"
means just that. There is an upper limit on the number of concurrent
threads that Hunchentoot spawns to handle requests. If the default limit
of 100 is too low, you can set a different limit by instantiating the
taskmaster with a different :max-thread-count.

Please refer to the documentation (http://weitz.de/hunchentoot/#taskmasters)
to learn how taskmasters and load limiting works.

Please confirm whether this is a real bug or just a misunderstanding of how
load limiting in Hunchentoot works on your side.

On Tue, Apr 9, 2013 at 3:40 PM, Zplay [email protected] wrote:

First, create a caveman app and start it :

(ql:quickload :caveman)(caveman.skeleton:generate #p"test")(ql:quickload :test)(test:start)```
Start "apache benchmark" ab command : ab -c 500 -n 1000 http://localhost:5000/, it'll breaks the app started. I know that 500 concurrents is BIG, but you can also try with -c 50 and
press CTRL+C to break connections, 2 or 3 times doing it break the app too.
I am not sure it is a problem with hunchentoot. Caveman is using Clack using hunchentoot, but if I replace hunchentoot with fastcgi or mod_lisp, I can't reproduce something like that.


Reply to this email directly or view it on GitHubhttps://github.com//issues/54#issuecomment-16112947
.

from hunchentoot.

rapenne-s avatar rapenne-s commented on May 20, 2024

Thank you for you quick answer. I have been looking deeper, the problem seems related to caveman/clack blocking somewhere, no hunchentoot can't do threads anymore. With caveman displaying a single character through hunchentoot, I can't overload it, display a big page and it get blocked after the "too many requests", it doesn't work anymore.

from hunchentoot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.