Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
--- Comment #63 from Hongli Lai <honglilai(a)gmail.com> 2010-09-14 04:08:55 EDT ---
Passenger 3's Boost is actually based on 1.42.0. A lot of API breakages have
happened between Boost 1.35 and 1.42. I believe it's impossible to support
multiple Boost versions without making our code a mess with #ifdefs everywhere.
We only support one specific version of Boost for the time being: the one we
use during development.
The condition_variable and mutex error checks do not retry on all errors: they
only retry on EINTR. BOOST_VERIFY aborts even on EINTR but EINTR is usually not
fatal, it just means you need to try later. This issue bit us on one of our
customers' production systems.
Exception hierarchy change: yes they're informational. If a thread fails to
spawn (i.e. thread_resource_error is thrown) then we'll want to show a
backtrace. This is not possible without patching Boost and changing the ABI.
Please do not remove TRACE_POINTs. They're an essential part of our system
inspection features. Right now it's possible to query the backtrace of all
threads in Phusion Passenger during runtime thanks to the TRACE_POINTs. If you
get rid of that then our users will lose their ability to see what's going on
and will introduce a lot of headaches when things go wrong.
Thread constructor: it is not unnecessary, we do this intentionally to reduce
the VM size. We create a lot of threads. The default thread stack size on Linux
is 8 MB, so unless we reduce the stack sizes we can't create many threads and
the VM size will grow very large, giving users the impression that we're memory
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.