Passenger 5.0.25: Rails 5 and Action Cable integration, crash fixes

Version 5.0.25 of the Phusion Passenger application server for Ruby, Node.js, Meteor and Python has been released. This release introduces much better Rails 5 integration, better Action Cable integration, fixes a number of crashes and bugs and adds a few improvements.

If you hadn't already, be sure to check out the many major improvements that the 5.x series of Passenger introduces. And please be aware that you can enjoy enterprise features and sponsor the open source development directly by buying Phusion Passenger Enterprise.

Rails 5 integration

Passenger integrates with Rails 5 in many ways that other application servers do not. For example, we perform static asset acceleration, we support ActionPack page caching and we automatically set HTTP caching headers for the asset pipeline. We have added new documentation which describes our integration in detail.

Action Cable integration documentation and features

Passenger has been compatible with the new Action Cable since our previous (5.0.24) release. This remains true with the recently released Rails 5.0.0.beta2.

It's very easy to set up, as you can see in our newly added documentation. We've also added a new option that helps set up Passenger Standalone with the officially recommended Action Cable configuration.

rails server command integration

For Ruby users, the instructions for using Passenger differed slightly from the traditional way of defining a gem and using rails server. We've added support for this mechanism, so that you can now use Passenger via rails server as well if you want to!

The other ways of using Passenger (through the passenger start command, or integrated with Nginx / Apache) remain fully supported and unchanged.

Ubuntu 15.04 / Debian 6 packages: End of Life

Ubuntu 15.04 and Debian 6 are still supported for running Passenger, but we no longer supply packages for them, per our packaging policy.

If you are an Ubuntu 15.04 or Debian 6 user and you want to use Passenger >= 5.0.25, then please install Passenger from RubyGems/tarball or upgrade your distribution.

Bug fixes

  • Fixes a crash that occurs when using Nginx + HTTPS + Sub-requests. Closes GH-1724.
  • Fixes a crash that occurs when using Nginx + syslog and a logfile for Passenger. Also fixes edge cases where the Nginx logpath would override the Passenger logpath. Closes GH-1514 (again).
  • Fixes a potential crash due to memory corruption in code for passenger-config reopen-logs.
  • Fixes a potential crash in the large (inbound/outbound) file buffering code.
  • [Standalone] Don't reject the value 0 (meaning no limit) for --max-request-queue-size. Closes GH-1743.
  • [Union Station] Fixes a potential crash due to a wrong limit on snprintf (introduced in 5.0.24 by GH-1633). Closes GH-1744.
  • [Union Station] Fixes Union Station Node.js request introspection to allow for application.use method chaining. Closes GH-1745.
  • [Union Station] Fixes information about sinks sometimes missing from passenger-status --show=union_station.

Improvements

  • [Standalone] Adds the --unlimited-concurrency-path configuration option.
  • [Standalone] Adds IPv6 support to the builtin engine.
  • [Standalone] Makes the --address option work more reliably if the passed hostname may resolve to multiple addresses. For example, if you pass --address localhost then previous versions could fail because Passenger thinks it's an IPv6 address (::1) while Nginx thinks it's an IPv4 address (127.0.0.1). Hostname resolution is now done in a consistent manner.
  • If one or more Union Station gateways are suffering from technical difficulties, the Union Station support code now tries more quickly to reestablish the connection.

Installing 5.0.25

Please see the installation guide.

Upgrading to 5.0.25

We strongly advise staying up to date with the latest version.

See also the upgrade notes below!


OS X

Debian

Ubuntu

Heroku

Red Hat

CentOS

Ruby gem

Tarball

Docker

If you are upgrading from 4.x, please read the 5.0 upgrade notes to learn about potential upgrade caveats.

Special notes about capistrano-passenger

If you are using Capistrano and [capistrano-passenger], then it may fail with this error:

SSHKit::Runner::ExecuteError: Exception while executing as user@99.99.99.99: undefined method `[]' for nil:NilClass

NoMethodError: undefined method `[]' for nil:NilClass

Tasks: TOP => passenger:restart

This is due to an incompatibility in capistrano-passenger with Passenger 5.0.22 and later. Please upgrade capistrano-passenger to 0.2.0 or later.