summary refs log tree commit homepage
AgeCommit message (Collapse)AuthorFilesLines
2010-07-11unicorn 1.1.1 - fixing cleanups gone bad :x v1.1.1Eric Wong3-4/+4
Unicorn::TeeInput constant resolution for Unicorn::ClientError got broken simplifying code for RDoc. This affects users of Rainbows! and Zbatery.
2010-07-11tee_input: fix constant resolution for client EOFEric Wong1-2/+2
Noticed while hacking on a Zbatery-using application (cherry picked from commit ac15513bb81a345cd12c67702a81a585b8b0514e)
2010-07-08unicorn 1.1.0 - small changes and cleanups v1.1.0Eric Wong1-2/+2
This is a small, incremental feature release with some internal changes to better support upcoming versions of the Rainbows! and Zbatery web servers. There is no need to upgrade if you're happy with 1.0.0, but also little danger in upgrading. There is one pedantic bugfix which shouldn't affect anyone and small documentation updates as well.
2010-07-08cleanup "stringio" requireEric Wong4-3/+1
"stringio" is part of the Ruby distro and we use it in multiple places, so avoid re-requiring it. (cherry picked from commit 0fea004ab093ec4f59d919915a505a136326bd8a)
2010-07-08prefer "[]" to "first"/"last" where possibleEric Wong2-7/+7
"[]" is slightly faster under Ruby 1.9 (but slightly slower under 1.8). (cherry picked from commit 5ece8c1c33f10e6496dfe5ae1d0d368293278d2d)
2010-07-08tee_input: safer record separator ($/) handlingEric Wong1-3/+4
Different threads may change $/ during execution, so cache it at function entry to a local variable for safety. $/ may also be of a non-binary encoding, so rely on Rack::Utils.bytesize to portably capture the correct size. Our string slicing is always safe from 1.9 encoding: both our socket and backing temporary file are opened in binary mode, so we'll always be dealing with binary strings in this class (in accordance to the Rack spec). (cherry picked from commit 1cd698f8c7938b1f19e9ba091708cb4515187939)
2010-07-06socket_helper: disable documentationEric Wong1-1/+1
(cherry picked from commit 98c51edf8b6f031a655a93b52808c9f9b78fb6fa)
2010-07-06socket_helper: cleanup FreeBSD accf_* detectionEric Wong1-21/+12
Instead of detecting at startup if filters may be used, just try anyways and log the error. It is better to ask for forgiveness than permission :) (cherry picked from commit 2b4b15cf513f66dc7a5aabaae4491c17895c288c)
2010-07-06socket_helper: no reason to check for logger methodEric Wong1-8/+3
We only use this module in HttpServer and our unit test mocks it properly. (cherry picked from commit e0ea1e1548a807d152c0ffc175915e98addfe1f2)
2010-07-06configurator: cleanup RDoc, un-indentEric Wong1-472/+466
No point in redeclaring the Unicorn module in here. (cherry picked from commit e4d2c7c302e96ee504d82376885ac6b1897c666a)
2010-07-06configurator: documentation for new accept optionsEric Wong1-0/+35
The defaults should be reasonable, but there may be folks who want to experiment. (cherry picked from commit 686281a90a9b47bac4dfd32a72a97e6e8d26afa1)
2010-07-06socket_helper: move defaults to the DEFAULTS constantEric Wong1-11/+21
This is to allow Rainbows! to override the defaults. (cherry picked from commit ef8f888ba1bacc759156f7336d39ba9b947e3f9d)
2010-07-06doc: recommend absolute paths for -c/--config-fileEric Wong2-2/+8
Suggested-by: Jeremy Evans ref: http://mid.gmane.org/AANLkTintT4vHGEdueuG45_RwJqFCToHi5pm2-WKDSUMz@mail.gmail.com (cherry picked from commit d7695c25c5e3b1c90e63bf15a5c5fdf68bfd0c34)
2010-07-06socket_helper: tunables for tcp_defer_accept/accept_filterEric Wong2-7/+53
Under Linux, this allows users to tune the time (in seconds) to defer connections before allowing them to be accepted. The behavior of TCP_DEFER_ACCEPT changed with Linux 2.6.32 and idle connections may still be accept()-ed after the specified value in seconds. A small value of '1' remains the default for Unicorn as Unicorn does not worry about slow clients. Higher values provide better DoS protection for Rainbows! but also increases kernel memory usage. Allowing "dataready" for FreeBSD accept filters will allow SSL sockets to be used in the future for HTTPS, too. (cherry picked from commit 646cc762cc9297510102fc094f3af8a5a9e296c7)
2010-07-06http_response: this should be a module, not a classEric Wong1-60/+55
This affects Rainbows!, but Rainbows! is still using the Unicorn 1.x branch. While we're at it, avoid redeclaring the "Unicorn" module, it makes documentation noisier. (cherry picked from commit 5769f313793ca84100f089b1911f2e22d0a31e9d)
2010-07-06http: avoid (re-)declaring the Unicorn moduleEric Wong1-1/+1
It makes for messy documentation. (cherry picked from commit b8b979d75519be1c84818f32b83d85f8ec5f6072)
2010-07-06tee_input: undent, avoid (re)-declaring "module Unicorn"Eric Wong1-204/+203
It makes RDoc look better and cleaner, since we don't do anything in the Unicorn namespace. (cherry picked from commit 6f720afd95d8131a2657c643b97cb18c750ed9f8)
2010-07-06tee_input: allow tuning of client_body_buffer_size/io_sizeEric Wong1-6/+16
Some folks may require more fine-grained control of buffering and I/O chunk sizes, so we'll support them (unofficially, for now). (cherry picked from commit 9f48be69bfe579dab02b5fe8d6e728ae63fd24fc)
2010-07-06tee_input: (nitpick) use IO#rewind instead of IO#seek(0)Eric Wong1-1/+1
no need to pass an extra argument (cherry picked from commit 1a49a8295054a2e931f5288540acb858be8edcc8)
2010-06-25test-exec: prefer ENV['PWD'] in working_directory testsEric Wong1-12/+17
We do an extra check in the application dispatch to ensure ENV['PWD'] is set correctly to match Dir.pwd (even if the string path is different) as this is required for Capistrano deployments. These tests should now pass under OSX where /var is apparently a symlink to /private/var.
2010-06-17unicorn 1.0.0 - yes, this is a real project v1.0.0Eric Wong3-4/+4
There are only minor changes since 0.991.0. For users clinging onto the past, MRI 1.8.6 support has been restored. Users are strongly encouraged to upgrade to the latest 1.8.7, REE or 1.9.1. For users looking towards the future, the core test suite and the Rails 3 (beta) integration tests pass entirely under 1.9.2 preview3. As of the latest rubinius.git[1], Rubinius support is nearly complete as well. Under Rubinius, signals may corrupt responses as they're being written to the socket, but that should be fixable transparently to us[4]. Support for the hardly used, hardly documented[2] embedded command-line switches in rackup config (.ru) files is is also broken under Rubinius. The recently-released Rack 1.2.1 introduced no compatiblity issues[3] in core Unicorn. We remain compatible with all Rack releases starting with 0.9.1 (and possibly before). [1] tested with Rubinius upstream commit cf4a5a759234faa3f7d8a92d68fa89d8c5048f72 [2] lets avoid the Dueling Banjos effect here :x [3] actually, Rack 1.2.1 is broken under 1.8.6. [4] http://github.com/evanphx/rubinius/issues/373
2010-06-17doc: update CONTRIBUTORSEric Wong1-2/+5
2010-06-17GNUmakefile: allow RSYNC variable to be overriddenEric Wong1-1/+2
This lets me use RSYNC=echo when testing/editing documentation without actually publishing it.
2010-06-17t030[34]: proper temporary UNIX domain socket handlingEric Wong2-8/+14
test-lib handles variables named "*socket" (and "*fifo") differently than ordinary variables.
2010-06-17tests: extra working_directory integration casesEric Wong2-0/+93
Our fugly code can't handle embedded command-line options in config.ru when using Rubinius yet. So add some related tests to the ones marked RBX_SKIP that don't rely on embedded command-line options.
2010-06-17tests: reenable more tests for rbxEric Wong3-9/+5
As of rbx commit cf4a5a759234faa3f7d8a92d68fa89d8c5048f72, most of the issues uncovered in our test suite are fixed.
2010-06-17revert rbx-only workaround for IO#reopenEric Wong1-6/+1
This is fixed upstream in Rubinius by commit b630ad9ddb4544a62e8e2282ba7dc59c4269bad7
2010-06-15workaround rbx not reopening logs to stderr/stdoutEric Wong4-2/+102
While log reopening worked reliably for newly-created File objects in the unit tests, the $stderr and $stdout handles that get redirected did not get reopened reliably under Rubinius. We work around this by relying on Rubinius internals and directly setting the @path instance variable. This is harmless for MRI and should be harmless for other any other Ruby implementations we'll eventually support. ref: http://github.com/evanphx/rubinius/issues/360
2010-06-14tee_input: update documentation for Rack 1.2Eric Wong1-0/+6
Rack 1.2 removed the +size+ method requirement, but we'll still support it since Rack 1.2 doesn't _prohibit_ it, and Rack 1.[01] applications will continue to exist for a while.
2010-06-14local.mk.sample: add 1.8.6-p114 to "full-test"Eric Wong1-2/+12
p114 probably had the most deployments of the 1.8.6 series, and I encountered problems with p399 that don't seem to be triggered with any other Rubies. 1.8.6 is mostly a lost cause, but we shall avoid the rb_str_set_len() regression.
2010-06-14app/exec_cgi: rack.input may not respond to #sizeEric Wong1-1/+2
Rack 1.2 no longer requires "rack.input" objects respond to size.
2010-06-12http: fix rb_str_set_len() define for 1.8.6Eric Wong1-0/+1
2010-06-11t0005: Ruby 1.9.2 $LOAD_PATH fixEric Wong1-1/+1
Ruby 1.9.2 no longer adds the current directory to $LOAD_PATH automatically.
2010-06-11cleanup: use modules were applicableEric Wong2-2/+2
No point in having namespaces be classes when we never create instances of them...
2010-06-11doc: cleanup rdoc escaping in title, hopefullyEric Wong2-2/+2
2010-06-10unicorn 0.991.0 - startup improvements v0.991.0Eric Wong3-4/+4
The "working_directory" configuration parameter is now handled before config.ru. That means "unicorn" and "unicorn_rails" no longer barfs when initially started outside of the configured "working_directory" where a config.ru is required. A huge thanks to Pierre Baillet for catching this ugly UI inconsistency before the big 1.0 release Thanks to Hongli Lai, out-of-the-box Rails 3 (beta) support should be improved for deployments lacking a config.ru There are more new integration tests, cleanups and some documentation improvements.
2010-06-10test to ensure "unicorn fooapp.rb" respects working_directoryEric Wong1-0/+37
2010-06-10add test for erroring out when config.ru is badEric Wong1-0/+24
2010-06-10t0303: extra test for multiple listenersEric Wong1-3/+8
We share the same array from the original bin/* down into the Configurator.
2010-06-10docs: hopefully clarify preload_app=false behaviorEric Wong2-4/+24
While we're at it, inform people of why they might use a symlink
2010-06-10README: more aggressively kill unnecessary linksEric Wong2-3/+3
... And make the gemspec do minor un-RDoc-ing
2010-06-10examples/init: "upgrade" task waits for completionEric Wong1-1/+17
This makes the user (sysadmin in this case) more aware if the upgrade fails or doesn't work as intended. This change could be more useful for Rainbows! with its long-running responses.
2010-06-10tests: fix sha1 calculation for non-random_blobEric Wong1-1/+1
This was commit abc207b2918606867094f2820bab58223e99aac4 from rainbows.git
2010-06-10t0303: set executable bitEric Wong1-0/+0
2010-06-10my-tap-lib: fix race condition in verbose modeEric Wong1-2/+3
Don't try to redirect until we know our FIFO consumers are ready for us. This only seems to happen with bash and not ksh...
2010-06-10tests: skip config.ru parsing tests under rbxEric Wong2-0/+11
eval("...", TOPLEVEL_BINDING) is broken for us in Rubinius (And our code is extremely nasty as well :x) ref: http://github.com/evanphx/rubinius/issues/357
2010-06-10configurator: remove debugging outputEric Wong1-3/+0
2010-06-10fix alt-working_directory behavior for Rails 3Eric Wong3-4/+84
2010-06-10http: cleanups for latest RubiniusEric Wong2-11/+3
Rubinius now supports rb_str_set_len() and sets -fPIC. We shouldn't check for rb_str_modify() since link-time detection is broken under Rubinius and even 1.8.6 has rb_str_modify().
2010-06-10unicorn_rails: no need to load ActionDispatch::StaticEric Wong2-4/+2
Rails 3 will automatically load it for us.