Passenger 5.0.28: rails server, Nginx 1.10, memleak fix

Version 5.0.28 of the Phusion Passenger application server for Ruby, Node.js, Meteor and Python has been released. Besides a few improvements it contains the complete rails server integration fix, as well as a memory leak fix and working dynamic Nginx module compilation for Linux.

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.

"on_event" errors fixed (rails server)

Due to an incomplete commit, the fix for the "on_event" errors associated with the rails server integration (available since 5.0.26) was incomplete. This has been resolved and the issue (GH-1768) is now closed.

Nginx 1.10.0 & build fixes

  • The preferred Nginx version for Passenger was changed to the new stable 1.10.x line.

  • The patch submitted in 5.0.26 for supporting compilation of Passenger as a dynamic Nginx module was discovered to have a compilation issue on Linux (GH-1793). The build was fixed by splitting out the objects specifically meant for linking to Nginx and compiling them with the -fPIC flag (rewrite of a PR by Andrei Belov).

  • The build depended on the PCRE library, which might not be available (such as when compiling with --without-http_rewrite_module) (GH-1796). We fixed the build by adding a fallback for this situation.

High concurrency memory leak fixed

Internal testing revealed a memory leak that could occur in the Passenger Core whenever more than 1024 concurrent requests are handled (GH-1797). This situation was more likely to occur when using the options for higher concurrency support (added in 5.0.24).

Passenger maintains an internal list that promotes object reuse to increase performance. Overflowing this list could lead to objects not being released and leaking, which has now been fixed.

Various improvements

  • Integrates with CloudLinux LVE and CageFS (security checks and a new option PassengerLveMinUid). Thanks to Oleksiy Shchukin from CloudLinux Inc. for contributing this.
  • Extends passenger-memory-stats filter to show the instance dir toucher too (as well as the core in valgrind debug runs).
  • Changes the default for friendly error pages to "off" unless the environment is set to "development", rather than "on" unless "staging" or "production". Closes GH-1782.

Installing 5.0.28

Please see the installation guide.

Upgrading to 5.0.28

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

See also the upgrade notes below!

OS X
OS X
Debian
Debian
Ubuntu
Ubuntu
Heroku
Heroku
Red Hat
Red Hat
CentOS
CentOS
Ruby gem
Ruby gem
Tarball
Tarball
Ruby gem
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.

Final

Phusion Passenger's core is open source. Please fork or watch us on Github. :)

[img

Union Station is Phusion's brand new take on Passenger application monitoring and analytics. Union Station aims to help you easily find performance bottlenecks and errors in your application and to help you fix them. Sign up for a free trial today!

comments powered by Disqus