summary refs log tree commit homepage
AgeCommit message (Collapse)AuthorFilesLines
2010-11-20unicorn 3.0.0 - disable rewindable input! v3.0.0Eric Wong2-3/+3
Rewindable "rack.input" may be disabled via the "rewindable_input false" directive in the configuration file. This will violate Rack::Lint for Rack 1.x applications, but can reduce I/O for applications that do not need a rewindable input. This release updates us to the Kgio 2.x series which should play more nicely with other libraries and applications. There are also internal cleanups and improvements for future versions of Rainbows! The Unicorn 3.x series supercedes the 2.x series while the 1.x series will remain supported indefinitely.
2010-11-20tests: stream_input tests for mixed gets/read callsEric Wong2-0/+45
Some apps may do them, so make sure we do them correctly.
2010-11-20stream_input: use String#sub! instead of gsub!Eric Wong1-1/+1
There's no difference because of the \A anchor, but sub! is doesn't loop so it's simpler.
2010-11-20stream_input: small cleanups and fixesEric Wong2-24/+20
No need to accept any number of args, that could hide bugs in applications that could give three or more arguments. We also raise ArgumentError when given a negative length argument to read.
2010-11-19tests: isolate kgio 2.0.0 instead of the prereleaseEric Wong1-1/+1
Same thing, but might as well make it more obvious.
2010-11-19unicorn 3.0.0pre2 - less bad than 2.x or 3.0.0pre1! v3.0.0pre2Eric Wong2-3/+3
This release updates us to the Kgio 2.x series which should play more nicely with other applications. There are also bugfixes from the 2.0.1 release and a small bugfix to the new StreamInput class. The Unicorn 3.x series will supercede the 2.x series while the 1.x series will remain supported indefinitely.
2010-11-19update to kgio 2.x seriesEric Wong2-2/+2
The Kgio 2.x API is less brain-damaged than the 1.3.x series was, and should solve API-compatibility problems with dalli 0.11.1.
2010-11-18Merge branch '2.0.x-stable'Eric Wong0-0/+0
* 2.0.x-stable: unicorn 2.0.1 - fix errors in error handling tests: add parser error test from Rainbows! http_server: fix HttpParserError constant resolution t0012: fix race condition in reload
2010-11-18unicorn 2.0.1 - fix errors in error handling v2.0.1Eric Wong2-3/+3
This release fixes errors in our own error handling, causing certain errors to not be logged nor responded to correctly. Eric Wong (3): t0012: fix race condition in reload http_server: fix HttpParserError constant resolution tests: add parser error test from Rainbows!
2010-11-18tests: add parser error test from Rainbows!Eric Wong1-0/+31
This will help ensure we trap our own errors properly in the future. (cherry picked from commit eda408603edc51f10f17217c767b31a45eb6c627)
2010-11-18tests: add parser error test from Rainbows!Eric Wong1-0/+31
This will help ensure we trap our own errors properly in the future.
2010-11-18stream_input: read with zero length returns ''Eric Wong2-1/+18
Any calls to read with an explicit zero length now returns an empty string. While not explicitly specified by Rack::Lint, this is for compatibility with StringIO and IO methods which are common in other web servers.
2010-11-17http_server: fix HttpParserError constant resolutionEric Wong1-1/+1
"Unicorn" is no longer in the default constant resolution namespace. (cherry picked from commit 390e351dd1283d4c80a12b744b1327fff091a141)
2010-11-17http_server: fix HttpParserError constant resolutionEric Wong1-1/+1
"Unicorn" is no longer in the default constant resolution namespace.
2010-11-18add missing test filesEric Wong2-0/+24
oops :x
2010-11-16unicorn 3.0.0pre1 v3.0.0pre1Eric Wong2-3/+3
Rewindable "rack.input" may be disabled via the "rewindable_input false" directive in the configuration file. This will violate Rack::Lint for Rack 1.x applications, but can reduce I/O for applications that do not need it. There are also internal cleanups and enhancements for future versions of Rainbows! Eric Wong (11): t0012: fix race condition in reload enable HTTP keepalive support for all methods http_parser: add HttpParser#next? method tee_input: switch to simpler API for parsing trailers switch versions to 3.0.0pre add stream_input class and build tee_input on it configurator: enable "rewindable_input" directive http_parser: ensure keepalive is disabled when reset *_input: make life easier for subclasses/modules tee_input: restore read position after #size preread_input: no-op for non-rewindable "rack.input"
2010-11-16preread_input: no-op for non-rewindable "rack.input"Eric Wong1-1/+1
We may get "rack.input" objects that are not rewindable in the future, so be prepared for those and do no harm.
2010-11-16t0012: fix race condition in reloadEric Wong1-1/+4
We need to ensure the old worker is reaped before sending new requests intended for the new worker. (cherry picked from commit b45bf946545496cf8d69037113533d7a58ce7e20)
2010-11-13tee_input: restore read position after #sizeEric Wong2-1/+24
It's possible for an application to call size after it has read a few bytes/lines, so do not screw up a user's read offset when consuming input.
2010-11-12*_input: make life easier for subclasses/modulesEric Wong2-14/+15
Avoid having specific knowledge of internals in TeeInput and instead move that to StreamInput when dealing with byte counts. This makes things easier for Rainbows! which will need to extends these classes.
2010-11-11http_parser: ensure keepalive is disabled when resetEric Wong1-0/+13
We'll need this in Rainbows!
2010-11-11configurator: enable "rewindable_input" directiveEric Wong6-11/+94
This allows users to override the current Rack spec and disable the rewindable input requirement. This can allow applications to use less I/O to minimize the performance impact when processing uploads.
2010-11-11add stream_input class and build tee_input on itEric Wong5-140/+333
We will eventually expose a Unicorn::StreamInput object as "rack.input" for Rack 2.x applications. StreamInput allows applications to avoid buffering input to disk, removing the (potentially expensive) rewindability requirement of Rack 1.x. TeeInput is also rewritten to build off StreamInput for simplicity. The only regression is that TeeInput#rewind forces us to consume an unconsumed stream before returning, a negligible price to pay for decreased complexity.
2010-11-11switch versions to 3.0.0preEric Wong2-3/+3
Here are major, incompatible internal API changes.
2010-11-07tee_input: switch to simpler API for parsing trailersEric Wong2-1/+2
Not that anybody uses trailers extensively, but it's good to know it's there.
2010-11-06http_parser: add HttpParser#next? methodEric Wong2-2/+23
An easy combination of the existing HttpParser#keepalive? and HttpParser#reset methods, this makes it easier to implement persistence.
2010-11-06enable HTTP keepalive support for all methodsEric Wong4-55/+67
Yes, this means even POST/PUT bodies may be kept alive, but only if the body (and trailers) are fully-consumed.
2010-10-28t0012: fix race condition in reloadEric Wong1-1/+4
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.0Eric Wong3-4/+4
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'Eric Wong0-0/+0
* 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'Eric Wong0-0/+0
* 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.5Eric Wong2-3/+3
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 signalsEric Wong1-1/+4
Sending the same signal faster than the receiver can process means signals can get lost.
2010-10-27unicorn 1.0.2 v1.0.2 maintEric Wong3-4/+4
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 optionsEric Wong2-2/+2
-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 devEric Wong1-1/+1
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 optionsEric Wong2-2/+2
-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 devEric Wong1-1/+1
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 optionsEric Wong2-2/+2
-N and -a switches no longer exist in rdoc 2.5
2010-10-27gemspec: depend on Isolate 3.0.0 for devEric Wong1-1/+1
No reason to not use the latest and greatest!
2010-10-27configurator: reloading with unset values restores defaultEric Wong2-5/+93
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"Eric Wong1-1/+1
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 defaultEric Wong2-5/+93
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"Eric Wong1-1/+1
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 defaultEric Wong2-5/+93
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"Eric Wong1-1/+1
It's less ambiguous since this is a network server after all.
2010-10-27Rakefile: capture prerelease tagsEric Wong1-1/+1
Since we do those, now. (cherry picked from commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c)
2010-10-27Rakefile: don't post freshmeat on empty changelogsEric Wong1-2/+6
We don't want to flood or monopolize freshmeat. (cherry picked from commit 1ad510d645e0c84c8d352ac0deaeefa75240ea94)
2010-10-27configurator: switch to normal classEric Wong1-1/+3
No point in using a Struct for (1.8) space-efficiency if there's only one of them.
2010-10-27Rakefile: capture prerelease tagsEric Wong1-1/+1
Since we do those, now. (cherry picked from commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c)