about summary refs log tree commit homepage
DateCommit message (Collapse)
2009-12-21unicorn 0.95.3 v0.95.3
The HTTP parser now allows (but does not parse) the userinfo component in the very rare requests that send absoluteURIs. Thanks to Scott Chacon for reporting and submitting a test case for this fix. There are also minor documentation updates and tiny cleanups.
2009-12-21build: favor upper-case variable names in Makefiles
It should be more compatible and easier to express that they're overridable to hackers. We keep the lower-case versions around in case people depend on them.
2009-12-21tee_input: rdoc for all public methods
2009-12-21GNUmakefile: nuke *.rbc files when generating RDoc
TODO: fix RDoc to ignore *.rbc files
2009-12-19http: allow userinfo component in absoluteURIs
This is not explicitly specified or listed as an example in in rfc2616. However, rfc2616 section 3.2.1 defers to rfc2396[1] for the definition of absolute URIs, so the userinfo component should be allowable, even if it does not make any sense. In the real world, previous versions of Mongrel used URI.parse() and thus allowed userinfo, so we also have precedence to allow userinfo to be compatible *in case* our interpretation of the RFCs is incorrect. This change is unfortunately needed because *occasionally* real clients rely on them. Reported-by: Scott Chacon [1] rfc3986 obsoletes rfc2396, but also includes userinfo
2009-12-13simplify pid assignment
Durr....
2009-12-07Rakefile: add Freshmeat.net update task
No more having bother with a clunky web browser \o/
2009-12-07unicorn 0.95.2 v0.95.2
Small fixes to our HTTP parser to allows semicolons in PATH_INFO as allowed by RFC 2396, section 3.3. This is low impact for existing apps as semicolons are rarely seen in URIs. Our HTTP parser runs properly under Rubinius 0.13.0 and 1.0.0-rc1 again (though not yet the rest of the server since we rely heavily on signals). Another round of small documentation tweaks and minor cleanups.
2009-12-07http_request: small cleanup/code reduction
No point in bloating code for an unlikely path (and the memcpy() vs malloc() tradeoff is debatable...)
2009-12-07doc: add ISSUES document
2009-12-06doc/ChangeLog: make LOG_VERSION sane if dirty
2009-12-06doc/NEWS.atom: add xhtml, remove shortlog from text
preformatted text from shortlog doesn't map well to most feed readers, it seems.
2009-12-06doc/HACKING: "git format-patch" with "-M" is better
2009-12-06http: PATH_INFO/REQUEST_PATH includes semi-colons
This is allowed according to RFC 2396, section 3.3 and matches the behavior of URI.parse, as well.
2009-11-29Add rake-compiler support for cross compiles
2009-11-23configurator: shorten rdoc, link to examples instead
No point in repeating ourselves and having to deal with nested comments + indentation in RDoc. It's also easier for users to just download the file than to copy-and-paste out of a typical web browser.
2009-11-23publish_doc task includes examples directory
2009-11-23Add examples for nginx and unicorn
These should help make things easier for folks unfamiliar with nginx setups.
2009-11-21test_exec: sleep a little longer to avoid race :<
On heavily loaded machines, this test can take a while, fortunately our test suite is parallelization-friendly.
2009-11-21cleanup: remove needless returns
A minor nit, and some folks I know hate needless returns as MRI does not optimize them away.
2009-11-21http: Rubinius 0.13.0 compatibility fix
Rubinius appears to have changed semantics and our rb_str_set_len() emulation doesn't work anymore. Since rb_str_set_len() is just an optimized version of rb_str_resize(), we'll just use rb_str_resize() for now unless we notice something better. test_http_parser and test_http_parser_ng tests pass under Rubinius 0.13.0.
2009-11-21README: deployments are not as rare as previously thought
Either people are actually using it or somebody is running a script to download gems off gemcutter in a loop... I suspect the former...
2009-11-21README: add a note about the HACKING page
2009-11-21README: remove http:// git repo links
Nobody really uses or cares for them anyways
2009-11-21doc: "RubyGems" is the correct capitalization
So says the project website and documentation
2009-11-21README: "an HTTP" server seems to be the correct form
Grammar na^H^Hexperts please correct us again if we're wrong.
2009-11-21README: Gemcutter is our (and everyone elses) gem host now
2009-11-21GNUmakefile: gem push for gemcutter
Also re-add RubyForge gem upload for now since some folks may still want to download from there.
2009-11-21unicorn 0.95.1 v0.95.1
Configuration files paths given on the command-line are no longer expanded. This should make configuration reloads possible when a non-absolute path is specified for --config-file and Unicorn was deployed to a symlink directories (as with Capistrano). Since deployments have always been strongly encouraged to use absolute paths in the config file, this change does not affect them. This is our first gem release using gemcutter. Eric Wong (3): SIGNALS: HUP + preload_app cannot reload app code Do not expand paths given on the shell GNUmakefile: prep release process for gemcutter
2009-11-21GNUmakefile: prep release process for gemcutter
2009-11-18Do not expand paths given on the shell
Shells already expand '~' before the executables see it, and relative paths inside symlinks can get set incorrectly to the actual directory name, and not the (usually desired) symlink name for things like Capistrano. Since our paths are now unexpanded, we must now check the "working_directory" directive and raise an error if the user specifies the config file in a way that makes the config file unreloadable.
2009-11-18SIGNALS: HUP + preload_app cannot reload app code
This is already documented in Configurator RDoc, but put it here just in case people don't read all the documentation.
2009-11-15unicorn 0.95.0 v0.95.0
Mostly internal cleanups and documentation updates. Irrelevant stacktraces from client disconnects/errors while reading "rack.input" are now cleared to avoid unnecessary noise. If user switching in workers is used, ownership of logs is now preserved when reopening worker logs (send USR1 only to the the master in this case). The timeout config no longer affects long after_fork hooks or application startups. New features include the addition of the :umask option for the "listen" config directive and error reporting for non-portable socket options. No ponies have ever been harmed in our development. Eric Wong (28): unicorn.1: document RACK_ENV changes in 0.94.0 HACKING: update with "gmake" in examples don't nuke children for long after_fork and app loads local.mk.sample: steal some updates from Rainbows! Load Unicorn constants when building app tee_input: fix RDoc argument definition for tee Add FAQ FAQ: fix links to Configurator docs tee_input: better premature disconnect handling tee_input: don't shadow struct members raise Unicorn::ClientShutdown if client aborts in TeeInput tee_input: fix comment from an intermediate commit FAQ: additional notes on getting HTTPS redirects right configurator: update RDoc and comments in examples bump version to 0.95.0pre configurator: listen :umask parameter for UNIX sockets preserve user/group ownership when reopening logs old_rails/static: avoid freezing strings old_rails: autoload Static const: no need to freeze HTTP_EXPECT test_server: ensure stderr is written to before reading tee_input: expand client error handling replace "rescue => e" with "rescue Object => e" socket_helper: do not hide errors when setting socket options socket_helper: RDoc for constants ClientShutdown: RDoc Rakefile: add raa_update task tee_input: client_error always raises
2009-11-15tee_input: client_error always raises
We do not hide unforseen exceptions, as that could cause us to waste precious time attempting to continue processing after errors.
2009-11-15Rakefile: add raa_update task
2009-11-15ClientShutdown: RDoc
2009-11-15socket_helper: RDoc for constants
2009-11-15socket_helper: do not hide errors when setting socket options
Since they're all optional, make them non-fatal, but make sure we log them so we can diagnose what (if anything) is going wrong.
2009-11-15replace "rescue => e" with "rescue Object => e"
"Object" is needless noise and some folks are annoyed by seeing it.
2009-11-15tee_input: expand client error handling
First move it to a separate method, this allows subclasses to reuse our error handler. Additionally, capture HttpParserError as well since backtraces are worthless when a client sends us a bad request, too.
2009-11-15test_server: ensure stderr is written to before reading
This works around a race condition caused by the server closing the connection before writing out to stderr in the ensure block. So to ensure we've waited on the server to write to the log file, just send another HTTP request since we know our test server only processes requests serially.
2009-11-14const: no need to freeze HTTP_EXPECT
We never set this as a hash key, so there's no performance gain from having a frozen string.
2009-11-14old_rails: autoload Static
It makes life easier for people writing config.ru files for use with Rails.
2009-11-14old_rails/static: avoid freezing strings
No need to freeze them unless we're assigning new hash values (PATH_INFO is already hashed when we assign it).
2009-11-14preserve user/group ownership when reopening logs
This is only supported when SIGUSR1 is sent only to the master process (which then resends SIGUSR1 to the workers). Since we only added support for user/group switching in the workers, we now chown any log files upon switching users so the master can pick up and chown the log files later on. Thus we can avoid having to restart workers because they fail to rotate log files on their own.
2009-11-14configurator: listen :umask parameter for UNIX sockets
Typically UNIX domain sockets are created with more liberal file permissions than the rest of the application. By default, we create UNIX domain sockets to be readable and writable by all local users to give them the same accessibility as locally-bound TCP listeners. This only has an effect on UNIX domain sockets. This was inspired by Suraj Kurapati in cfbcd2f00911121536rd0582b8u961f7f2a8c6e546a@mail.gmail.com
2009-11-13bump version to 0.95.0pre
We need a minor version since we will expose Unicorn::ClientDisconnect.
2009-11-13configurator: update RDoc and comments in examples
Some of this based on Suraj Kurapati's comments on the mailing list.
2009-11-13FAQ: additional notes on getting HTTPS redirects right
2009-11-13tee_input: fix comment from an intermediate commit