We've released version 5.0.0 release candidate 2 of the Phusion Passenger application server for Ruby, Python and Node.js. The 5.x series is also unofficially known under the codename "Raptor", and introduces many major improvements such as performance enhancements, better tools for application-level visibility and a new HTTP JSON API for accessing Passenger’s internals.

Release candidate 1 has been skipped because a problem was found shortly after the Git tag was pushed.

Focus on stability

The focus of release candidate 1 and 2 have been on stability. This release features many bug fixes. We consider release candidate 2 "mostly ready for production": all major bugs have been fixed, but there may still be some issues left which are not yet discovered. We're confident that it's usable in production, but you should still exercise some caution.

We intend on releasing 5.0 final at the end of February. That final version is officially ready for production.

Changes in this version

The changes in release candidate 1 and 2 combined as as follows. The list is quite boring though because we've been focusing on bug fixes. ;)

  • Fixes an installation problem with the Ruby gem due to incorrect Makefile generation. Closes GH-1382.
  • More helpful message when request queue is full. Closes GH-1375.
  • Fixed Date headers not being formatted in the GMT timezone. Closes GH-1367.
  • Fixed Passengerfile.json/passenger-standalone.json not being properly loaded in Passenger Standalone.
  • Fixed support for sticky sessions.
  • Fixed an infinite loop if the ApplicationPool garbage collector fails due to an exception. Closes GH-1360.
  • Fixed Passenger Standalone exiting prematurely when the HelperAgent crashes. Exiting prematurely is not supposed to happen because the watchdog will restart the HelperAgent. Closes GH-1339.
  • Fixed a crash that occurs when using a non-standard startup file value. Closes GH-1378.
  • When dumping system metrics during error page generation, the passenger-config command is now invoked under the same Ruby interpreter as the app, instead of the one in PATH. Closes GH-1381.
  • When a Ruby process crashes due to an uncaught exception, this fact is now properly logged.
  • Specifying 0 for the max_pool_size config option no longer results in a crash. Closes GH-1334.
  • The timeouts when downloading Passenger Standalone binaries and source files are now customizable. Closes GH-1295.
  • The envvars option is now supported in Passengerfile.json, for passing environment variables to the application. Closes GH-1377.
  • Introduced hook_queue_full_error for request queue overflows. Closes GH-1358.
  • [Ruby] Fixed handling of "transfer-encoding chunked" response bodies which contain zero-sized chunks.
  • [Nginx] It is no longer necessary to re-specify passenger_enabled in location contexts. Closes GH-1338.
  • [Enterprise] Fixed a bug in mass deployment reloading.
  • [Enterprise] Fixed a bug in mass deployment daemonization.
  • [Enterprise] The mass deployment mode now supports the app_type and startup_file configuration options in Passengerfile.json/passenger-standalone.json. Closes GH-1366.

Installing or upgrading

Here's a quickstart:

gem install passenger --pre -v 5.0.0.rc2
cd /path-to-your-app
passenger start

The above is a very short excerpt of how to install or upgrade Phusion Passenger. For detailed instructions (which, for example, take users and permissions into account), please refer to the “RubyGems” section of the installation manuals:

Please note:

  • 5.0.0 RC 2 is a beta release. There are no major bugs left, but please exercise caution and report any issues.
  • There are no Homebrew or Debian packages for this release, because this release is still in beta!
  • There is also a RC 2 release of Phusion Passenger Enterprise available. Please refer to the Customer Area.