Phusion Passenger 5.0.8: new Debian packages, Red Hat packages, bug fixes

Version 5.0.8 of the Phusion Passenger application server for Ruby, Python, Node.js and Meteor has been released. We have a lot of new packages with this release! Additionally, we took time to find & fix two tricky occasional crashes and regressions.

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.

Debian 8 and Ubuntu 15.04 packages

After a lot of hard work we are proud to announce that we now supply Passenger packages for:

You can find installation instructions in the manual.

No more packages for Ubuntu 10.04

Ubuntu 10.04 reached its End of life date (April 30th 2015). Therefore, we have stopped building packages for Ubuntu 10.04.

Passenger still works on Ubuntu 10.04, we just won't be providing .deb packages for it anymore. If you wish to use Passenger >= 5.0.8 on Ubuntu 10.04, then please install Passenger from gem or tarball.

Red Hat and CentOS packages

We are also happy to announce the introduction of Passenger RPMs.

Development of the RPMs has literally taken 1.5 years. Due to limited man power, due to the difficulties of conforming to Red Hat and Fedora packaging guidelines, and due to the complexity of learning SELinux (the security mechanism which powers all Red Hat and CentOS systems), we have been developing RPMs on and off. But we have made significant progress in the past month.

Our policy is to support all Red Hat and CentOS releases (starting from version 6) that are still receiving full updates from their respective vendor.

Our packages provide an SELinux policy so that Passenger works nicely with SELinux.

Packages are supplied for:

  • Red Hat 6 (x86 and x86_64)
  • Red Hat 7 (x86_64 only)
  • CentOS 6 (x86 and x86_64)
  • CentOS 7 (x86_64 only)

You can find installation instructions in the manual.

Packages hosted on PackageCloud

Starting from version 5.0.7 (the previous release), all our Debian and RPM packages are hosted on PackageCloud. This simplifies our packaging infrastructure.

The major advantage that this brings to users, is that older package versions are now retained. Before the PackageCloud migration, our APT repository only retained the latest version of Passenger. But now you can use apt-get to install any arbitrary Passenger version starting from version 5.0.7.

The same holds for our RPMs repository. You can use yum to install any arbitrary Passenger version starting from 5.0.8.

You do not have to update any URLs in your APT your YUM configuration files. We have setup redirects so that everything works transparently.

OOBGC & Relative URL crashes fixed

Two causes for occasional Passenger (agent) crashes have been reproduced and fixed. Although Passenger automatically recovers from agent crashes already, it does cause requests in progress to be discarded.

For users who had out-of-band garbage collection (OOBGC) set to enabled, a crash would occur if a new request arrived exactly as OOBGC was being performed (GH-1469). Passenger usually selects the "least busy" process to handle an incoming request and this code could not yet deal with processes in the "disabled" (garbage collection being performed) state.

We discovered an invalid memory access issue in the joyent/http-parser that Passenger makes use of for parsing things like the value of the Location header. This would occasionally result in a crash for values without a hostname, such as relative URLs in redirect responses (GH-1513). The fix was also accepted upstream.

Fixed X-Sendfile/X-Accel-Redirect "Bad Gateway" regression

In 5.0.7 we fixed an issue with X-Sendfile/X-Accel-Redirect (GH-1376), by assuming that responses with these headers do not have a body. Unfortunately, Rails's render :nothing => true actually does send a body (a single byte), which broke our connection keep-alive and triggered "Bad Gateway" errors (GH-1498). This was fixed by disabling keep-alive when encountering the mentioned headers.

Min_instances regression fixed

We discovered that in Passenger 5 the min_instances limit was not always being respected. For users with pool_idle_time set to a value >0 and a lightly loaded server this would result in Passenger occasionally spinning down more application processes than intended (GH-1500).

Miscellaneous bug fixes

  • Fixes the fact that Passenger agent processes don't lower their privilege when user switching is turned off.
  • Fixes autodetection of Apache on Gentoo. Closes GH-1510.
  • Fixes compilation problems on Solaris. Closes GH-1508.

Improvements

  • [Standalone] Adds the --pool-idle-time command line parameter.
  • [Standalone] Adds the --auto command line parameter for running non-interactively. This supresses prompts. Closes GH-1511.

Special thanks to Brightbox

We would like to thank Brightbox for providing us with a build server, file server and bandwidth. Brightbox is a UK-based hosting company, and they have assisted us in packaging-related manners since 2010.

Our Debian packages and Linux binaries are automatically built on a server hosted by Brightbox. And starting from this release, RPMs are also automatically built by this server.

Installing or upgrading to 5.0.8

We recommend upgrading to the latest version of Passenger, especially if you are on version 5.0.5 or 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.