632 Commits

Author SHA1 Message Date
Randall Leeds
21f7282128 remove redundant exception handling an async base
StopIteration is simply propogated, so there's no reason to catch it.
The catch-all exception is also caught and logged in handle(), but
broken pipe errors are ignored. The redundant catch here was generating
excess logging by calling handle_error for a broken pipe which fails to
send the error because the client has already disconnected.
2011-07-08 14:38:32 -07:00
benoitc
4c2267b0a1 fix issue #229, put the rigt order for fdout and fdin. 2011-07-06 21:30:45 +02:00
John Hensley
7e9f8b5b02 Change handling of headers that indicate SSL requests.
Instead of hardcoding X-Forwarded-Protocol and X-Forwarded-SSL, make the
header and value configurable, with no default that would enable a
client to spoof secure requests if the reverse proxy is not configured
to strip the header used.
2011-07-06 18:33:17 +02:00
benoitc
1a796ebbc6 fix issue #221 don't override sys.path if project_path is already in. 2011-07-06 17:40:17 +02:00
benoitc
0f53a83f49 main problem of current run_gunicorn reload behaviour is that settings
aren't correctly reloaded. First attempt to remove it from sys.modules
introduced more problem than it solved.

This new attempt, just get the module, reload it and populate currently
loaded settings with new values.
2011-06-25 10:28:27 +02:00
Keegan Carruthers-Smith
133a85e4ee Updated docs to reflect the proper alternative syntax for specifying a worker class. 2011-06-25 09:19:05 +02:00
Jim Garrison
087647dc88 fixed spelling of _sendfile 2011-06-25 09:13:08 +02:00
Paul J. Davis
9d65513f33 Disable attempt at reloading Django modules.
This appears to be causing errors in user code so we decided
to disable it until we can find a cause or better method for
reloading Django.
2011-06-15 19:31:07 -04:00
Paul J. Davis
0923a52171 Fix bug in Arbiter.manage_workers.
My fix yesterday was broken when sorting workers. Thanks to
Sabin Iacob for the report.
2011-06-15 09:20:20 -04:00
Paul J. Davis
6d69509bb6 Avoid race condition in dict iteration.
Its possible that when iterating Arbiter.WORKERS in manage_workers we
get interupted to handle a SIGCHLD which will pop the child PID from
the dict which results in a "dict changed size while iterating
error. Reported on IRC. Simple fix is to just copy the dict into a
list that we iterate.
2011-06-14 16:17:47 -04:00
Paul J. Davis
e1e634a8aa Fixed Tornado worker exiting.
Thanks to Masahiro Nakagawa for the report and patch.

Fixes #216
2011-06-06 06:34:14 -04:00
Paul J. Davis
7ffa097cf7 Use split (not rsplit) to separate MOD:APP info. 2011-06-02 09:17:59 -04:00
WoLpH
179b87639c removed python string formatting from logging to enable log message grouping 2011-05-11 23:11:36 +02:00
Michael Schurter
1a52dd2d84 Remove unneeded lambda 2011-05-11 23:11:03 +02:00
benoitc
6fa1c52aaa fix import. 2011-05-11 23:11:03 +02:00
benoitc
78e3d08f96 add missing GeventWSGIWorker 2011-05-11 23:11:03 +02:00
denis
70b962e626 fix typo catched by pyflakes 2011-05-11 23:11:03 +02:00
denis
2ab4bbf46f fix compatibility with gevent 0.14 dev version
Move "import gevent.wsgi" into a separate module, which is not
imported if pywsgi worker is requested. (The gevent.wsgi currently
not provided by gevent trunk but pywsgi works fine.)
2011-05-11 23:11:03 +02:00
benoitc
4ecc1441b9 i hate my kbd. Real fix 2011-05-11 23:11:03 +02:00
benoitc
a65bf395ae fix fbsd support 2011-05-11 23:11:02 +02:00
benoitc
c17f7230e8 refactor sendfile and add an example. 2011-05-11 23:11:02 +02:00
benoitc
fc69d5e17c useless debug info 2011-05-11 23:11:02 +02:00
benoitc
fcab6bc144 after multiple attempts it's easier to just reload the app. People using
mange.py have to use USR2 signal if they want to upgrade the django
version instread of HUP. On the other hand, upgrading django version
with HUP is possible with gunicorn_django command.
2011-05-11 23:11:02 +02:00
Paul J. Davis
4211be4df4 Reorder hook config section to be more logical. 2011-05-11 23:11:02 +02:00
Paul J. Davis
9e6631e832 Fix hook function names.
The names were being rendered into the online docs and
causing confusion.
2011-05-11 23:11:00 +02:00
Paul J. Davis
d83c63429e Empty chunks incorrectly signal end of response.
If an app iterator attempts to send an empty string to the client
while using chunked transfer encoding it incorrectly signals the
end of the transfer. This patch just ignores empty strings that
are yielded by the application.
2011-05-11 23:09:55 +02:00
benoitc
0b094ca08a fix issue #195. Thanks! 2011-04-24 09:32:55 +02:00
benoitc
f1d5f26dfa django manage.py load settings before we launch every worker. This
change remove it from loaded modules on reload. While we are here we
remove any django module preloaded so we can upgrade django version to
on HUP. fix issue #197.
2011-04-24 09:05:27 +02:00
benoitc
1d00c5e09d bump version 2011-03-23 09:48:22 +01:00
Dan Sully
4f96ccedc1 Catch ctypes import errors. 2011-03-23 07:37:40 +01:00
Graham Dumpleton
b7adfe2628 Add wsgi.file_wrapper optimisations for MacOS X/Linux. 2011-03-23 07:37:40 +01:00
benoitc
853b2ad37a that's not a dev server. 2011-03-15 14:38:35 -04:00
Neil Chintomby
06987d3702 add server hook "on_starting" to allow socket patching to allow gevent worker reloading. 2011-03-14 23:28:33 -04:00
Alex Robbins
974698671a Moved the random seed method into a function.
Added a try/except block to catch NotImplementedErrors for platforms
that don't support urandom.
2011-03-14 23:10:09 -04:00
benoitc
dbc61f310e fix issue #143. unnecessary list(). 2011-03-06 10:24:56 +01:00
benoitc
c21578df40 ctypes triggers selinux execmem denial
https://bugzilla.redhat.com/show_bug.cgi?id=488396

fix issue #168. Thanks!
2011-03-06 10:14:52 +01:00
benoitc
4b2c04317c Apply patch from Chris Lamb <lamby@debian.org> with minor revision.
Validate models before allowing connections via gunicorn_django

This prevents issues where the site is accepting connections but not all
of the models have loaded yet. If your model importing has side effects
(monkey-patching, etc) this can results in errors about missing attributes
or features simply because the code that enables those features as not been
run yet.

This issue does not affect the "run_gunicorn" management command as that
performs it's own model validation before allowing connections, so we are
simply making this consistent here.

Signed-off-by: Chris Lamb <lamby@debian.org>
2011-03-06 10:02:40 +01:00
Paul J. Davis
894e2d2526 Missing spaces in the error response. 2011-03-03 12:02:08 -05:00
benoitc
3fc530c162 this is just a warning, we don't really care about exceptions here. 2011-03-03 10:45:23 +01:00
benoitc
ba89a400dc we don't do anythiung in __init__, remove these lines. 2011-03-03 10:36:14 +01:00
benoitc
14313985d6 add worker info at startup. 2011-03-03 10:05:16 +01:00
benoitc
7dd7b71523 patch from @davisp, ease the code. 2011-02-25 08:47:46 +01:00
benoitc
43dfb8f0f7 fix issue #165. Sometimes apache don't specify the port ipv6 address are
in the form of  aaaa:aaaa:... . Thanks to zauberpony for first
implementation of the patch.
2011-02-25 08:23:56 +01:00
benoitc
75fec00896 don't import django before we really need it. Should fix issue #166 . 2011-02-24 22:25:00 +01:00
Paul J. Davis
0c05de4d2b Fixed a couple harmless typos.
Thanks to Josh Ourisman for spotting them.
2011-02-15 14:51:03 -05:00
benoitc
a942f6a06c just load environ when we load the app 2011-02-09 00:06:57 +01:00
Benoit Chesneau
618bc873d8 typo. 2011-01-31 10:00:23 +01:00
Benoit Chesneau
0bd86f7729 fix ipv6 address parsing in forward address. Spotted 3 weeks ago by
Jonathan Leroy.
2011-01-30 18:46:17 +01:00
Paul J. Davis
cdd58014a7 Prevent exceptions from being logged twice.
* Remove logging call in worker subclasses and rely on the
    logging in Worker.handle_error to do the proper logging.
2011-01-29 16:40:25 -05:00
Paul J. Davis
885b530e1a Always log exceptions during request handling.
* Always log the exception locally
  * Still only pass the exception in the HTTP response if
    debug is turned on.
  * Slight cosmetic changes to the actual HTML of the error
    response.
2011-01-29 14:43:18 -05:00