summary refs log tree commit homepage
AgeCommit message (Collapse)AuthorFilesLines
2010-10-09unicorn 2.0.0pre3 - more small fixes v2.0.0pre3Eric Wong2-3/+3
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 TeeInputEric Wong3-0/+95
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 dependencyEric Wong2-2/+2
kgio 1.3.1 fixes some cases for zero-length reads.
2010-10-08build: automatically call isolate on updatesEric Wong3-17/+15
Automation is nice, the makefile needs some cleanup
2010-10-08bump kgio dependency to 1.3.0Eric Wong2-2/+2
There was a backwards-incompatible API change, but that didn't even affect us.
2010-10-07gemspec: bump kgio versionEric Wong1-1/+1
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 requestsEric Wong2-1/+25
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.0pre2Eric Wong2-3/+3
Internal changes/cleanups for Rainbows!
2010-10-07http: remove unnecessary rb_str_update() callsEric Wong2-7/+0
Rubinius no longer uses it, and it conflicts with a public method in MRI.
2010-10-07start using more compact parser APIEric Wong5-82/+72
This should be easier for Rainbows! to use
2010-10-07http_server: avoid method redefinition warningsEric Wong1-1/+2
We clobber the accessor methods.
2010-10-07http: allow this to be used as a request objectEric Wong2-58/+105
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 --helpEric Wong1-2/+2
It's more descriptive as to what environment we're setting than "ENVIRONMENT".
2010-10-06Raiefile: capture prerelease tagsEric Wong1-1/+1
Since we do those, now.
2010-10-06unicorn 2.0.0pre1 - a boring "major" release v2.0.0pre1Eric Wong4-8/+12
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 isolateEric Wong1-1/+1
We use the latest and greatest whenever possible.
2010-10-06various cleanups and reduce indentationEric Wong3-787/+793
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.0Eric Wong4-4/+8
This provides the kgio_read! method which is like readpartial, only significantly cheaper when a client disconnects on us.
2010-10-05GNUmakefile: fix isolate invocationEric Wong1-1/+1
again :x
2010-10-05tee_input: use kgio to avoid stack traces on EOFEric Wong3-24/+17
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 HttpParserErrorEric Wong3-7/+29
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 destEric Wong1-2/+3
We don't want to waste time and bandwidth.
2010-10-05test_tee_input: use a socketpair()Eric Wong1-1/+1
It's a much closer representation of what we'd expect in the real server than a mono-directional UNIX pipe.
2010-10-05test_signals: enable test under RubiniusEric Wong1-1/+1
The bugs from signal handling were fixed in the Rubinius 1.1.0 release.
2010-10-05tmpio: use super instead of an explicit methodEric Wong1-1/+1
This is for compatibility with Ruby implementations such as Rubinius that use "IO.new" internally inside "IO.open"
2010-10-05update comment about non-blocking accept()Eric Wong1-1/+1
Thanks to kgio, we no longer use accept_nonblock.
2010-10-05util: uindent use less ambiguous constant scopingEric Wong1-56/+50
This hopefully makes things easier to read and follow.
2010-10-05Unicorn::Util.tmpio => Unicorn::TmpIO.newEric Wong5-32/+34
This is slightly shorter and hopefully easier to find.
2010-10-05doc: update TODOEric Wong1-0/+7
This gives us some things to think about.
2010-10-05start using kgio, the kinder, gentler I/O libraryEric Wong6-21/+24
This should hopefully make the non-blocking accept() situation more tolerable under Ruby 1.9.2.
2010-10-04split out isolate usage/logicEric Wong6-40/+62
We'll be using more of Isolate in development.
2010-10-04http_request: reformat and small reorgEric Wong2-62/+63
This hides more HTTP request logic inside our object.
2010-10-04tee_input: update interface to use HttpRequestEric Wong3-21/+28
This should ensure we have less typing to do.
2010-10-04http_request: avoid globalsEric Wong2-17/+20
Rainbows! will be able to reuse this.
2010-10-04split out worker to a separate fileEric Wong2-40/+44
This hopefully makes things easier to read, follow, and find since it's mostly documentation...
2010-10-04http_response: avoid singleton methodEric Wong3-50/+34
There's no need for a response class or object since Rack just uses an array as the response. So use a procedural style which allows for easier understanding. We shall also support keepalive/pipelining in the future, too.
2010-10-04Merge commit 'v1.1.4'Eric Wong0-0/+0
* commit 'v1.1.4': unicorn 1.1.4 - small bug fix and doc updates update Rails 3 tests to use Rails 3 final avoid unlinking actively listening sockets doc: update HACKING for documentation contributions doc: update Sandbox document for Bundler TUNING: more on socket buffer sizes
2010-10-04unicorn 1.1.4 - small bug fix and doc updates v1.1.4Eric Wong2-3/+3
We no longer unlinking actively listening sockets upon startup (but continue to unlink dead ones). This bug could trigger downtime and nginx failures if a user makes an error and attempts to start Unicorn while it is already running. Thanks to Jordan Ritter for the detailed bug report leading to this fix. ref: http://mid.gmane.org/8D95A44B-A098-43BE-B532-7D74BD957F31@darkridge.com There are also minor documentation and test updates pulled in from master. This is hopefully the last bugfix release of the 1.1.x series.
2010-10-04update Rails 3 tests to use Rails 3 finalEric Wong3-3/+3
Rails 3 is out, and requires no code changes on our end to work (as far as our tests show :) (cherry picked from commit da272fc48ffaa808456fe94dd7a3e01bc9799832)
2010-10-04avoid unlinking actively listening socketsEric Wong3-3/+95
While we've always unlinked dead sockets from nuked/leftover processes, blindly unlinking them can cause unnecessary failures when an active process is already listening on them. We now make a simple connect(2) check to ensure the socket is not in use before unlinking it. Thanks to Jordan Ritter for the detailed bug report leading to this fix. ref: http://mid.gmane.org/8D95A44B-A098-43BE-B532-7D74BD957F31@darkridge.com (cherry picked from commit 1a2363b17b1d06be6b35d347ebcaed6a0c940200)
2010-10-04doc: update HACKING for documentation contributionsEric Wong1-3/+10
We switched to RDoc 2.5.x long ago and this should clarify some documentation preferences I have. (cherry picked from commit 505a9e72d320fe3ae521ceb0f381c1c0f5ae4389)
2010-10-04doc: update Sandbox document for BundlerEric Wong1-0/+9
Thanks to Lawrence Pit, Jamie Wilkinson, and Eirik Dentz Sinclair. ref: mid.gmane.org/4C8986DA.7090603@gmail.com ref: mid.gmane.org/5F1A02DB-CBDA-4302-9E26-8050C2D72433@efficiency20.com (cherry picked from commit 1a75966a5d1a1f6307ed3386e2f91a28bbb72ca0)
2010-10-04avoid unlinking actively listening socketsEric Wong3-3/+95
While we've always unlinked dead sockets from nuked/leftover processes, blindly unlinking them can cause unnecessary failures when an active process is already listening on them. We now make a simple connect(2) check to ensure the socket is not in use before unlinking it. Thanks to Jordan Ritter for the detailed bug report leading to this fix. ref: http://mid.gmane.org/8D95A44B-A098-43BE-B532-7D74BD957F31@darkridge.com
2010-09-15doc: update HACKING for documentation contributionsEric Wong1-3/+10
We switched to RDoc 2.5.x long ago and this should clarify some documentation preferences I have.
2010-09-15doc: update Sandbox document for BundlerEric Wong1-0/+9
Thanks to Lawrence Pit, Jamie Wilkinson, and Eirik Dentz Sinclair. ref: mid.gmane.org/4C8986DA.7090603@gmail.com ref: mid.gmane.org/5F1A02DB-CBDA-4302-9E26-8050C2D72433@efficiency20.com
2010-08-30TUNING: more on socket buffer sizesEric Wong1-1/+7
Large buffers can hurt as well as help. And the difference in real apps that do a lot of things other than I/O often makes it not worth it. (cherry picked from commit f9a7a19a361fd674bab4e2df7e0897015528bba7)
2010-08-30TUNING: more on socket buffer sizesEric Wong1-1/+7
Large buffers can hurt as well as help. And the difference in real apps that do a lot of things other than I/O often makes it not worth it.
2010-08-30update Rails 3 tests to use Rails 3 finalEric Wong3-3/+3
Rails 3 is out, and requires no code changes on our end to work (as far as our tests show :)
2010-08-30remove nasty ugly hacks at startupEric Wong7-54/+40
These nasty hacks were breaking Rubinius compatibility. This can be further cleaned up, too.
2010-08-29Merge branch '1.1.x-stable'Eric Wong0-0/+0
* 1.1.x-stable: unicorn 1.1.3 - small bug fixes make log reopens even more robust in threaded apps update Rails3 tests to use 3.0.0rc2 make log reopens more robust in multithreaded apps bin/*: more consistent --help output SIGTTIN works after SIGWINCH