about summary refs log tree commit homepage
DateCommit message (Collapse)
2010-10-28t0012: fix race condition in reload
We need to ensure the old worker is reaped before sending new requests intended for the new worker.
2010-10-27unicorn 2.0.0 - mostly internal cleanups v2.0.0
Despite the version number, this release mostly features internal cleanups for future versions of Rainbows!. User visible changes include reductions in CPU wakeups on idle sites using high timeouts. Barring possible portability issues due to the introduction of the kgio library, this release should be ready for all to use. However, 1.1.x (and possibly 1.0.x) will continue to be maintained. Unicorn 1.1.5 and 1.0.2 have also been released with bugfixes found during development of 2.0.0.
2010-10-27Merge branch '1.1.x-stable'
* 1.1.x-stable: unicorn 1.1.5 doc: stop using deprecated rdoc CLI options gemspec: depend on Isolate 3.0.0 for dev configurator: reloading with unset values restores default configurator: use "__send__" instead of "send" Rakefile: capture prerelease tags Rakefile: don't post freshmeat on empty changelogs fix delays in signal handling
2010-10-27Merge branch 'maint'
* maint: unicorn 1.0.2 doc: stop using deprecated rdoc CLI options gemspec: depend on Isolate 3.0.0 for dev configurator: reloading with unset values restores default configurator: use "__send__" instead of "send" Rakefile: capture prerelease tags Rakefile: don't post freshmeat on empty changelogs fix delays in signal handling SIGTTIN works after SIGWINCH
2010-10-27unicorn 1.1.5 v1.1.5
This maintenance release fixes several long-standing but recently-noticed bugs. SIGHUP reloading now correctly restores default values if they're erased or commented-out in the Unicorn configuration file. Delays/slowdowns in signal handling since 0.990 are fixed, too.
2010-10-27examples/unicorn.conf: add a note about throttling signals
Sending the same signal faster than the receiver can process means signals can get lost.
2010-10-27unicorn 1.0.2 v1.0.2 maint
This is the latest maintenance release of the 1.0.x series. All users are encouraged to upgrade to 1.1.x stable series and report bugs there. Shortlog of changes since 1.0.1: Eric Wong (8): SIGTTIN works after SIGWINCH fix delays in signal handling Rakefile: don't post freshmeat on empty changelogs Rakefile: capture prerelease tags configurator: use "__send__" instead of "send" configurator: reloading with unset values restores default gemspec: depend on Isolate 3.0.0 for dev doc: stop using deprecated rdoc CLI options
2010-10-27doc: stop using deprecated rdoc CLI options
-N and -a switches no longer exist in rdoc 2.5 (cherry picked from commit 054c7df93db61839648925cfd881ae880709a210)
2010-10-27gemspec: depend on Isolate 3.0.0 for dev
No reason to not use the latest and greatest! (cherry picked from commit 570a57c07fd8c3d24b7337637e0dd30136b3a11a) Conflicts: unicorn.gemspec
2010-10-27doc: stop using deprecated rdoc CLI options
-N and -a switches no longer exist in rdoc 2.5 (cherry picked from commit 054c7df93db61839648925cfd881ae880709a210)
2010-10-27gemspec: depend on Isolate 3.0.0 for dev
No reason to not use the latest and greatest! (cherry picked from commit 570a57c07fd8c3d24b7337637e0dd30136b3a11a) Conflicts: unicorn.gemspec
2010-10-27doc: stop using deprecated rdoc CLI options
-N and -a switches no longer exist in rdoc 2.5
2010-10-27gemspec: depend on Isolate 3.0.0 for dev
No reason to not use the latest and greatest!
2010-10-27configurator: reloading with unset values restores default
If a configuration directive is set at startup and later unset, it correctly restores the original default value as if it had never been set in the first place. This applies to the majority of the configuration values with a few exceptions: * This only applies to stderr_path and stdout_path when daemonized (the usual case, they'll be redirected to "/dev/null"). When NOT daemonized, we cannot easily redirect back to the original stdout/stderr destinations. * Unsetting working_directory does not restore the original working directory where Unicorn was started. As far as we can tell unsetting this after setting it is rarely desirable and greatly increases the probability of user error. (cherry picked from commit 51b2b90284000aee8d79b37a5406173c45ae212d)
2010-10-27configurator: use "__send__" instead of "send"
It's less ambiguous since this is a network server after all. (cherry picked from commit f62c5850d7d17d7b5e301a494f8bdf5be3674411)
2010-10-27configurator: reloading with unset values restores default
If a configuration directive is set at startup and later unset, it correctly restores the original default value as if it had never been set in the first place. This applies to the majority of the configuration values with a few exceptions: * This only applies to stderr_path and stdout_path when daemonized (the usual case, they'll be redirected to "/dev/null"). When NOT daemonized, we cannot easily redirect back to the original stdout/stderr destinations. * Unsetting working_directory does not restore the original working directory where Unicorn was started. As far as we can tell unsetting this after setting it is rarely desirable and greatly increases the probability of user error. (cherry picked from commit 51b2b90284000aee8d79b37a5406173c45ae212d)
2010-10-27configurator: use "__send__" instead of "send"
It's less ambiguous since this is a network server after all. (cherry picked from commit f62c5850d7d17d7b5e301a494f8bdf5be3674411)
2010-10-27configurator: reloading with unset values restores default
If a configuration directive is set at startup and later unset, it correctly restores the original default value as if it had never been set in the first place. This applies to the majority of the configuration values with a few exceptions: * This only applies to stderr_path and stdout_path when daemonized (the usual case, they'll be redirected to "/dev/null"). When NOT daemonized, we cannot easily redirect back to the original stdout/stderr destinations. * Unsetting working_directory does not restore the original working directory where Unicorn was started. As far as we can tell unsetting this after setting it is rarely desirable and greatly increases the probability of user error.
2010-10-27configurator: use "__send__" instead of "send"
It's less ambiguous since this is a network server after all.
2010-10-27Rakefile: capture prerelease tags
Since we do those, now. (cherry picked from commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c)
2010-10-27Rakefile: don't post freshmeat on empty changelogs
We don't want to flood or monopolize freshmeat. (cherry picked from commit 1ad510d645e0c84c8d352ac0deaeefa75240ea94)
2010-10-27configurator: switch to normal class
No point in using a Struct for (1.8) space-efficiency if there's only one of them.
2010-10-27Rakefile: capture prerelease tags
Since we do those, now. (cherry picked from commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c)
2010-10-27Rakefile: don't post freshmeat on empty changelogs
We don't want to flood or monopolize freshmeat.
2010-10-27fix delays in signal handling
There is no need to loop in the master_sleep method at all, as the rest of the code is designed to function even on interrupted sleeps. This change is included as part of a larger cleanup in master. (commit bdc79712e5ac53d39c51e80dfe50aff950e5053f). From maint: (cherry picked from commit 10037f2aabb3fab4296fc90c615e7caa9f4a9b53) Conflicts: lib/unicorn.rb
2010-10-27fix delays in signal handling
There is no need to loop in the master_sleep method at all, as the rest of the code is designed to function even on interrupted sleeps. This change is included as part of a larger cleanup in master. (commit bdc79712e5ac53d39c51e80dfe50aff950e5053f)
2010-10-27reduce master process wakeups
To reduce CPU wakeups and save power during off hours, we can precalculate a safe amount to sleep before killing off idle workers.
2010-10-26master: remove limit on queued signals
If a moronic sysadmin is sending too many signals, just let them do it. It's likely something is terribly wrong when the server is overloaded with signals, so don't try to protect users from it. This will also help in case where TTOU signals are sent too quickly during shutdown, although sleeping between kill(2) syscalls is always a good idea because of how non-real-time signals are delivered.
2010-10-09unicorn 2.0.0pre3 - more small fixes v2.0.0pre3
There is a new Unicorn::PrereadInput middleware to which allows input bodies to be drained off the socket and buffered to disk (or memory) before dispatching the application. HTTP Pipelining behavior is fixed for Rainbows! There are some small Kgio fixes and updates for Rainbows! users as well.
2010-10-09add PrereadInput middleware to get around TeeInput
This may be useful for some apps that wish to drain the body before acquiring an app-wide lock. Maybe it's more useful with Rainbows!...
2010-10-08bump kgio dependency
kgio 1.3.1 fixes some cases for zero-length reads.
2010-10-08build: automatically call isolate on updates
Automation is nice, the makefile needs some cleanup
2010-10-08bump kgio dependency to 1.3.0
There was a backwards-incompatible API change, but that didn't even affect us.
2010-10-07gemspec: bump kgio version
kgio 1.2.1 works around a bug for some *BSDs, some of which are popular platforms for developers.
2010-10-07http: fix behavior with pipelined requests
We cannot clear the buffer between requests because clients may send multiple requests that get taken in one read()/recv() call.
2010-10-07unicorn 2.0.0pre2 - releases are cheap v2.0.0pre2
Internal changes/cleanups for Rainbows!
2010-10-07http: remove unnecessary rb_str_update() calls
Rubinius no longer uses it, and it conflicts with a public method in MRI.
2010-10-07start using more compact parser API
This should be easier for Rainbows! to use
2010-10-07http_server: avoid method redefinition warnings
We clobber the accessor methods.
2010-10-07http: allow this to be used as a request object
The parser and request object become one and the same, since the parser lives for the lifetime of the request.
2010-10-06bin/unicorn: show "RACK_ENV" in --help
It's more descriptive as to what environment we're setting than "ENVIRONMENT".
2010-10-06Raiefile: capture prerelease tags
Since we do those, now.
2010-10-06unicorn 2.0.0pre1 - a boring "major" release v2.0.0pre1
Mostly internal cleanups for future versions of Rainbows! and people trying out Rubinius. There are tiny performance improvements for Ruby 1.9.2 users which may only be noticeable with Rainbows! Unicorn 1.1.x users are NOT required to upgrade.
2010-10-06gemspec: depend on newer isolate
We use the latest and greatest whenever possible.
2010-10-06various cleanups and reduce indentation
This also affects some constant scoping rules, but hopefully makes things easier to follow. Accessing ivars (not via accessor methods) are also slightly faster, so use them in the criticial process_client code path.
2010-10-05upgrade to kgio 1.2.0
This provides the kgio_read! method which is like readpartial, only significantly cheaper when a client disconnects on us.
2010-10-05GNUmakefile: fix isolate invocation
again :x
2010-10-05tee_input: use kgio to avoid stack traces on EOF
TeeInput methods may be invoked deep in the stack, so avoid giving them more work to do if a client disconnects due to a bad upload.
2010-10-05http: raise empty backtrace for HttpParserError
It's expensive to generate a backtrace and this exception is only triggered by bad clients. So make it harder for them to DoS us by sending bad requests.
2010-10-05tests: do not invoke isolate in test install dest
We don't want to waste time and bandwidth.